Programming > Docker

[이미지/컨테이너] image/container 파일로 export/import

Docker로 이미지나 컨테이너를 파일로 옮기기

이미지는 save / load 를 사용해 파일로 주고받고
컨테이너는 export / import 를 사용해 파일을 주고 받는다.

단, export 로 컨테이너를 백업할 경우, 메타정보등을 저장 안하고 파일시스템 복사만 이루어 지므로 파일 사이즈는 적어지나 이미지로 복원시 추가적인 플래그등의 설정이 필요할 수 있다.

 

이미지 보존하기 ( save )

$ docker save [Option] {image_name}

※ myimg 라는 이미지를 보존하는 방법

$ docker save myimg > myimg.tar

 

이미지 읽어들이기 ( load )

$ docker load < myimg.tar

 

컨테이너 보존하기 ( export )

$ docker export [Option] {Container_name|Container_ID}

※ mycon 이라는 컨테이너를 보존하는 방법

$ docker export mycon > mycon.tar

 

컨테이너 export 를 이미지로 읽어들이기 ( import )

$ cat {File} | docker import [Options] - [Repository[:Tag]]
or
$ docker import {File} - [Repository[:Tag]]​​​​​

※ export한 컨테이너가 nginx의 경우, 추가적인 플래그등 ex) CMD 설정등이 필요 하므로 아래와 같이 추가적인 설정 

$ cat mycon.tar | docker import --change 'CMD ["nginx", "-g", "daemon off;"]' - newimg:latest

 

※ 이미지로 부터 Nginx 실행 해 보기

$ docker run -d -p 8080:80 --name myNginxContainer newimg:latest

 

컨테이너를 이미지로 보관하기

실행중인 컨테이너를 정지하고 commit을 실행한다.

$ docker stop mytom
$ docker commit mytom test/tomcat