샤인의 IT (막 적는) 메모장

[Docker] 이미지 태깅 및 압축 파일 만들기 본문

Container/Docker

[Docker] 이미지 태깅 및 압축 파일 만들기

신샤인 2021. 3. 24. 11:08
반응형

도커 이미지 및 가동된 컨테이너를 tar 파일로 만드는 법에 대해 알아보겠습니다.

 

보통 실무에서는 해당 이미지를 빌드해서 tar 파일로 압축해서 해당 서버에 올리는 작업을 수행합니다.

 

이미지를 압축하는 방법은 두가지로 분류되는데

 

이미지

실행중인 컨테이너

 

두가지를 압축할 수 있습니다.

 

압축을 실행하기에 앞서 해당 이미지를 Tagging하는 작업이 우선적으로 필요합니다.

 

이미지 태깅

#Image Tag
docker tag nginx:1.14 nginx:v1
[root@docker docker]# docker tag nginx:1.14 nginx:v1
[root@docker docker]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        1.14      295c7be07902   24 months ago   109MB
nginx        v1        295c7be07902   24 months ago   109MB

이미지 태깅 작업을 수행하게 되면 기존 태깅과 다른 리스트를 확인할 수 있습니다. (IMAGE ID는 같습니다)

 

이미지 압축 파일 생성

 

태깅작업을 수행한 후 해당 이미지를 tar파일로 저장합니다.

 

Docker Save, Load 명령어를 수행합니다.

 

docker image save nginx:v1 -o nginxv1.tar

docker load -i nginxv1.tar
[root@docker home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE 
nginx        1.14      295c7be07902   24 months ago   109MB

[root@docker home]# docker tag nginx:1.14 nginx:v1
[root@docker home]# docker save nginx:v1 -o nginxv1.tar

[root@docker home]# docker rmi -f nginx:v1
Untagged: nginx:v1  

[root@docker home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE 
nginx        1.14      295c7be07902   24 months ago   109MB

[root@docker home]# docker load -i nginxv1.tar 
Loaded image: nginx:v1
[root@docker home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE 
nginx        1.14      295c7be07902   24 months ago   109MB
nginx        v1        295c7be07902   24 months ago   109MB
[root@docker home]# 

컨테이너 압축 파일 생성

 

컨테이너 압축 파일은 현재 실행되고 있는 컨테이너를 tar파일로 저장합니다.

 

Docker Export, Import 명령어를 수행합니다.

 

Export와 Import는 해당 컨테이너를 이미지화 하기 때문에 이미지를 올린 후에 태깅 작업을 수행합니다.

docker export my-fore-web -o myforeweb.tar

docker import myforeweb.tar
[root@docker home]# docker ps -a
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS                     PORTS     NAMES      
87935ee2e89d   nginx:1.14   "nginx -g 'daemon of…"   4 minutes ago   Up 4 minutes               80/tcp    my-back-web
0114390fe3f6   nginx:1.14   "/bin/bash"              4 minutes ago   Exited (0) 4 minutes ago	my-fore-web

[root@docker home]# docker export my-fore-web -o myforeweb.tar

[root@docker home]# docker import myforeweb.tar 
sha256:f75aacd5c73d9005fd2e93d847aeb179370f47f372a96ca82fe60123d5174770

[root@docker home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
<none>       <none>    f75aacd5c73d   2 seconds ago   107MB
nginx        1.14      295c7be07902   24 months ago   109MB
nginx        v1        295c7be07902   24 months ago   109MB

[root@docker home]# docker tag f75aacd5c73d nginx:v11

[root@docker home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        v11       f75aacd5c73d   25 seconds ago   107MB
nginx        1.14      295c7be07902   24 months ago    109MB
nginx        v1        295c7be07902   24 months ago    109MB

혹은 실행중인 컨테이너를 Commit 명령어를 통해 이미지를 만들 수 있습니다.

docker commit my-fore-web nginx:ver

[root@node1 ~]# docker commit my-fore-web nginx:ver
sha256:df6b881350d95c2e1b6ae0303a7927c2acb299716713bac506945d399dc199a2
[root@node1 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        ver       df6b881350d9   5 seconds ago   183MB

 

 

이미지와 컨테이너 두 방법 모두 사용 가능하나 보통의 경우는 이미지를 올려서 태깅작업하고 tar로 추출하는 방법을 주로 사용하고 있습니다.

 

Good Day!

반응형

'Container > Docker' 카테고리의 다른 글

[Docker] Dockerfile 작성  (0) 2021.03.26
[Docker] Docker Registry  (0) 2021.03.25
[Docker] 도커 이미지 이해와 기본 명령어  (0) 2021.03.24
[Docker] 도커 설치  (0) 2021.03.23
[Docker] What is Docker?  (0) 2021.03.23
Comments