본문 바로가기

리눅스

[draft] Docker 이미지를 파일로 저장하고 불러오는 방법

Docker 이미지를 파일로 저장(Save)하고 불러오는(Load) 방법

Docker 이미지는 파일 형태로 저장하여 다른 서버로 이동하거나 백업할 수 있습니다.

  • docker save : Docker 이미지를 tar 파일로 저장
  • docker load : tar 파일에서 Docker 이미지 복원

1. 저장된 Docker 이미지 확인 (docker111 서버)

현재 서버에 저장된 Docker 이미지 목록을 확인합니다.

docker images
root@docker111:container$ docker images
REPOSITORY         TAG       IMAGE ID       CREATED       SIZE
fluentd            latest    c585932afaee   6 weeks ago   52.3MB

fluentd:latest 이미지를 저장합니다.

2. Docker 이미지 파일로 저장 (Save)

Docker 이미지를 파일로 저장하려면 docker save 명령어를 사용합니다.

 

기본 명령어

docker save -o <파일명>.tar <이미지명:태그>

예제

docker save -o fluentd.tar fluentd:latest

실행 예시

root@docker111:container$ docker save -o fluentd.tar fluentd:latest

명령 실행 후 현재 디렉토리에 다음 파일이 생성됩니다.

fluentd.tar

이 파일은 Docker 이미지를 포함한 tar 아카이브 파일입니다.

3. Docker 이미지 파일 서버 전송(docker111 → docker222)

생성된 이미지 파일을 다른 서버로 전송합니다.

 

예제에서는 ssh와 tar를 이용하여 파일을 전달합니다.

tar cfz - ./fluentd.tar | ssh root@222.222.222.222 "(cd /docker-container/; tar xfz -)"

실행 예시

root@docker111:container$ tar cfz - ./fluentd.tar | ssh root@222.222.222.222 "(cd /docker-container/; tar xfz -)"

전송이 완료되면 docker222 서버의 /docker-container 디렉토리에 fluentd.tar 파일이 생성됩니다.

4. Docker 이미지 불러오기 (Load)

다른 서버에서 tar 파일로 저장된 Docker 이미지를 불러오려면 docker load 명령어를 사용합니다.

 

기본 명령어

docker load -i <이미지파일>.tar

예제

docker load -i fluentd.tar

실행 예시

root@docker222:docker-container$ docker load -i fluentd.tar
b2d5eeeaba3a: Loading layer [==================================================>]   5.88MB/5.88MB
d2bdf0b61a14: Loading layer [==================================================>]  50.64MB/50.64MB
229b7f8656d3: Loading layer [==================================================>]  14.85kB/14.85kB
c056f770bdaf: Loading layer [==================================================>]  3.072kB/3.072kB
1b4269e9e06c: Loading layer [==================================================>]  3.072kB/3.072kB
bff4076ae320: Loading layer [==================================================>]  3.072kB/3.072kB
Loaded image: fluentd:latest

5. 이미지 정상 로드 확인 (docker222 서버)

이미지가 정상적으로 로드되었는지 확인합니다.

docker images
root@docker222:docker-container$ docker images
REPOSITORY         TAG       IMAGE ID       CREATED       SIZE
fluentd            latest    c585932afaee   6 weeks ago   52.3MB

docker111 서버에 있던 이미지와 동일한 이미지가 docker222 서버에 로드된 것을 확인할 수 있습니다.

실무에서 많이 사용하는 전송 방법

SCP로 전송

scp fluentd.tar root@222.222.222.222:/docker-container/

압축해서 전송

docker save fluentd:latest | gzip > fluentd.tar.gz

복원

gunzip -c fluentd.tar.gz | docker load

 

참고URL

- https://docs.docker.com/engine/reference/commandline/save/

- https://docs.docker.com/engine/reference/commandline/load/