이번 절에서는 컨테이너로 이미지를 만드는 방법
에 대해 살펴본다.
이 방법은 컨테이너를 다른 환경에서 복제하기 위해 사용되며 서버 엔지니어에게는 필수적이다.
컨테이너를 이미지로 만드는 방법
지금까지는 공식적으로 제공되는 이미지만을 사용했다.
하지만, 이미 존재하는 컨테이너
를 이용하면 누구나 쉽게 이미지를 만들
수 있다.(이미지를 처음부터 만드는 건 어렵다)
컨테이너를 가지고 나만의 이미지
를 만들어서 똑같은 구성의 컨테이너
를 대량으로 만들 수 있고
그렇게 만들어낸 컨테이너들을 다른 컴퓨터 또는 서버에 이동시킬 수도 있다.
이동시킨다는 의미는... 실제로 컨테이너를 다른 컴퓨터 또는 서버에 복사한다기보다는
원하는 컨테이너를 이미지로 바꾸고 그 이미지를 가지고 컨테이너를 만드는 걸 '이동한다'라고 표현한다.
이미지를 만드는 방법은 2가지가 있다.
① commit 커맨드로 컨테이너를 이미지로 변환
컨테이너가 있다면... commit 커맨드
를 통해 이미지를 만들면 된다. 그렇기 때문에 당연히 컨테이너가 이미 존재
해야 한다.
docker commit 컨테이너이름 새로운이미지이름
② Dockerfile 스크립트로 이미지 만들기
Dockerfile 스크립트
를 작성하고 이 스크립트를 빌드(build)
해서 이미지를 만드는 방법
Dockerfile은 이미지를 생성
하기 위해서 존재하는 파일이고 여기에 토대가 되는 이미지(base image)나 실행할 명령어 등을 작성한다.
Dockerfile은 호스트 컴퓨터의 이미지 재료가 들어있는 폴더
에 위치시킨다.
해당 폴더에는 컨테이너에 넣을 각종 파일들
을 함께 두면 된다. 실제 컨테이너를 만들 필요는 없다.
docker build -t 생성할이미지이름 재료_폴더_경로
많이 사용하는 instruction은 FROM, COPY, RUN 정도가 있다. 물론 필요한 게 있다면 더 알아두면 좋다.
FROM 토대가_되는_이미지이름
COPY 원본경로 대상경로
RUN 리눅스_명령어
...
이미지를 옮기는 방법
컨테이너를 옮긴다는 건
해당 컨테이너를 이미지로 변환해서 그 이미지를 가지고 새 컨테이너를 만드는 방식을 의미한다.
이미지 역시 이미지 자체를 옮기거나 복사할 수 없다.
그래서 도커 레지스트리
를 이용하거나 save 커맨드
를 사용해서 tar 포맷
으로 도커 엔진의 관리 영역 밖으로 내보내야 한다.
docker save -o 파일이름.tar 이미지이름
파일은 호스트 컴퓨터의 파일 시스템에 생성된다. 다시 도커 엔진 관리 영역으로 가져오려면 load 커맨드
를 쓰면 된다.
'Docker' 카테고리의 다른 글
[Docker] 6-6 도커 허브 등록 및 로그인 (0) | 2023.05.29 |
---|---|
[Docker] 6-5. 컨테이너 개조 (0) | 2023.05.29 |
[Docker] 6-3. 볼륨 마운트 (0) | 2023.05.28 |
[Docker] 6-2. 컨테이너와 호스트 간에 파일 복사 (0) | 2023.05.23 |
[Docker] 5-1. 실습 (워드프레스 & MySQL) (0) | 2023.05.22 |