본문 바로가기

리눅스

Docker 컨테이너의 변경 내용을 이미지로 커밋, 저장, 로드, 태그 변경하는 방법

반응형

Docker 컨테이너의 변경 내용을 이미지로 커밋, 저장, 로드, 태그 변경하는 방법

Docker 컨테이너의 변경 내용을 이미지로 커밋하고, 해당 이미지를 아카이브 파일로 저장한 뒤, 이를 다시 이미지로 로드하고 새로운 태그를 붙이는 방법은 다음과 같습니다.

 

1. 컨테이너 커밋()

Docker 컨테이너의 변경 내용을 이미지로 커밋하려면 docker commit 명령을 사용합니다. 이 명령은 새로운 이미지를 생성하고 해당 이미지의 ID를 반환합니다.

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  • OPTIONS: 추가 옵션을 지정할 수 있습니다. 예를 들어, 커밋할 때 커밋 메시지를 추가하는 등의 작업을 수행할 수 있습니다.
  • CONTAINER: 커밋하려는 컨테이너의 이름 또는 ID입니다.
  • REPOSITORY[:TAG]: 새로운 이미지의 저장소 이름과 태그를 지정합니다. 태그를 지정하지 않으면 기본값으로 latest가 사용됩니다.

예를 들어, 이름이 my_container인 컨테이너를 커밋하여 새로운 이미지를 만들고, 이를 my_image:version1로 태그하려면 다음과 같이 실행합니다.

docker commit my_container my_image:version1

 

2. 이미지 저장

docker save 명령을 사용하여 이미지를 아카이브 파일로 저장합니다.

docker save -o image.tar IMAGE[:TAG]
  • -o image.tar: 이미지를 저장할 아카이브 파일의 경로를 지정합니다.
  • IMAGE[:TAG]: 저장할 이미지의 이름과 태그를 지정합니다. 태그를 지정하지 않으면 기본값으로 latest가 사용됩니다.

예를 들어, my_image:version1 이미지를 image.tar라는 아카이브 파일로 저장하려면 다음과 같이 실행합니다.

docker save -o image.tar my_image:version1

 

3. 이미지 로드

저장된 아카이브 파일을 이용하여 이미지를 로드합니다.

docker load -i image.tar
  • -i image.tar: 로드할 이미지가 저장된 아카이브 파일의 경로를 지정합니다.

이제 image.tar에 저장된 이미지가 다시 로드되어 Docker에 등록됩니다.

728x90

 

4. 이미지 태그 변경

이미지에 새로운 태그를 붙이려면 docker tag 명령을 사용합니다.

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • SOURCE_IMAGE[:TAG]: 원본 이미지의 이름과 태그를 지정합니다.
  • TARGET_IMAGE[:TAG]: 변경할 이미지의 이름과 새로운 태그를 지정합니다.

예를 들어, 이전에 만든 my_image:version1 이미지를 my_image:latest로 태그하려면 다음과 같이 실행합니다.

docker tag my_image:version1 my_image:latest

이제 my_image:version1 이미지는 my_image:latest로도 참조할 수 있게 됩니다.

 

이제 Docker 컨테이너의 변경 내용이 이미지로 커밋되고, 이를 아카이브 파일로 저장하여 다시 이미지로 로드하고 새로운 태그를 붙일 수 있게 됩니다. 이미지와 컨테이너에 대한 작업은 신중하게 수행하고, 중요한 변경이나 태그 변경 시에는 적절한 문서화와 체계적인 관리를 권장합니다.

 

  • 컨테이너 커밋(Commit)
### 컨테이너 ID 또는 NAMES 확인
$ docker ps -a
CONTAINER ID   IMAGE    COMMAND         CREATED             STATUS              PORTS                NAMES
978c84237f88   centos   "/sbin/init"    41 minutes ago      Up 41 minutes       0.0.0.0:25->25/tcp   postfix
docker commit -a "postfix1" postfix
### 도커 이미지 커밋
$ docker commit -a "postfix1" postfix
sha256:e33c19886c59df83a29e638de91a4fc1fe576bbc243f72ed9240581faed150b9
### 도커 이미지 확인
$ docker images
REPOSITORY             TAG                  IMAGE ID            CREATED             SIZE
<none>                 <none>               e33c19886c59        5 seconds ago       341MB
  • 이미지 태그 변경
docker image tag e33c19886c59 postfix:1.1
### 도커 이미지 태그명 변경
$ docker image tag e33c19886c59 postfix:1.1
### 도커 이미지 태그명 확인
$ docker images
REPOSITORY             TAG                  IMAGE ID            CREATED             SIZE
postfix                1.1                  e33c19886c59        2 minutes ago       341MB

 

728x90
반응형