본문 바로가기

devops/docker

docker image를 tar파일로 저장하는 방법

개요

도커 이미지는 일반적으로 docker hub와 같은 도커 레지스트리(docker registry)에서 공유합니다. 

하지만 일반적이지 않은 상황에서 도커 레지스트리를 사용할 수 없는 경우 도커 이미지를 tar파일로 만들어 공유할 수 있습니다. 

 

이번 포스트에서는 도커 이미지나 도커 컨테이너를 tar 파일로 만들고 다시 tar파일을 도커 이미지로 만드는 방법을 알아보겠습니다. 

 

참고

  • tar 파일 : .tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz

 

도커 이미지 -> tar 파일

도커 이미지를 tar 파일로 만들때는 `docker save`명령어를 사용합니다. 

docker save [option] [tar filename] [image name]

파일을 이름을 지정하는 옵션은 `--output , -o` 입니다. 

예제

docker save -o ubuntu.tar ubuntu:latest
docker save --output ubuntu.tar ubuntu:latest

 

도커 이미지로 만든 tar 파일 -> 도커 이미지

도커 이미지로 만든 tar 파일을 다시 도커 이미지로 되돌릴 때는 `docker load`명령어를 사용합니다.

docker load -i [tar filename]

파일을 이름을 지정하는 옵션은 `--input , -i` 입니다. 

예제

docker load -i ubuntu.tar
docker load --input ubuntu.tar

 

도커 컨테이너 -> tar 파일

도커 이미지가 아닌 사용중이 도커 컨테이너를 tar 파일로 만들 경우에는 `docker export`명령어를 사용합니다.

docker export [container name or containter ID] >  [tar filename]

예제

docker export my-container-name > latest.tar

 

도커 컨테이너로 만든 tar 파일 -> 도커 이미지

도커 컨테이너로 만든 tar 파일을 다시 도커 이미지로 만들 경우에는 `docker import`명령어를 사용합니다.

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

예제

docker import http://example.com/exampleimage.tar exampleimage:tag
cat hello.tar | docker import - hello
sudo tar -c . | sudo docker import - hello