본문 바로가기

IT/리눅스

도커 컨테이너 이미지 백업 및 복구 하기 (docker container, save, load, export, import)

반응형

도커 컨테이너는 애플리케이션과 해당 애플리케이션을 실행하는 환경을 함께 묶어서 배포하는 기술입니다. 이러한 컨테이너를 이미지라고 부르고 이미지는 도커 허브(Docker Hub)와 같은 저장소에 업로드하여 다른 사람이 다운로드해서 사용할 수 있습니다.

사용중인 컨테이너를 이미지를 만드는 방법은 컨테이너를 중지하고, 그 상태를 스냅샷으로 저장하는 것입니다. 이렇게 저장된 이미지는 다른 서버에서 다시 컨테이너를 생성하거나, 도커 허브에 업로드하여 다른 사람이 사용할 수 있습니다.

 

하지만 굳이 도커 허브나 로컬 레포지토리에 넣지 않고 작업 중인 도커 컨테이너를 단순히 로컬에 백업을 하기 위해서 사용하시는 분들도 많을 텐데요

 

그런 경우에 사용하는 법을 정리해 보겠습니다. 

 

현재 사용중인 컨테이너와 이미지를 확인해 보겠습니다. 

 

docker images

docker ps -a

 

 

여기서는 ysyang_rockylinux8_cu114_221122_img:new 라는 이미지를 이용해서 생성한 ysyang_rockylinux8_cu114_221122 컨테이너가 표시되고 있습니다. 

 

ysyang_rockylinux8_cu114_221122 컨테이너를 백업 하고 복원하는 방법은 2가지가 있습니다.  

 

 

반응형

 

1. save / load 를 사용하기 

 

(1) 작업된 컨테이너를 이미지로 저장하기 (commit)


docker commit -p [컨테이너 이름] [이미지 이름:태그]

ex) 
docke stop ysyang_rockylinux8_cu114_221122
docke commit -p ysyang_rockylinux8_cu114_221122 my_image:new


(2) save로 이미지를 tar파일로 백업하기

docker save -o [저장할이름].tar [이미지 이름]

ex)
docker save -o my_image.tar my_image:new

 

(3) load로 이미지 복원하기 


docker load < [백업한 파일이름].tar

ex)
docker load < my_image.tar  

 

(4) 압축하면서 백업 및 복원 

 

*gzip으로 압축하면서 백업하기 

docker save [이미지이름 또는 ID] | gzip > 저장파일명.tar.gz

 

*압축파일에서 복원 하기 

docker load -i 저장파일명.tar.gz

 

2. export / import를 사용하기 

 

(1) export로 컨테이너를 한번에 이미지로 만들면서 tar.gz으로 백업 

 

docker export [컨테이너 이름] | gzip > [저장할이름].tar.gz

 

ex)

docke stop ysyang_rockylinux8_cu114_221122

docker export ysyang_rockylinux8_cu114_221122 | gzip > my_image.tar.gz

 

(2) import로 이미지 복원 하기 

 

docker import [저장된 tar.gz 파일]

 

ex) 

docker import  my_image.tar.gz

 

import 후에는 이미지 이름이 랜덤으로 생성된다. 

 

혹시 이름을 지정하면서 이미지를 생성하고 싶은 경우에는 다음과 같이 하면 된다. (스페이스 주의)

cat my_image.tar.gz | docker import  -  ysyang_rockylinux8_cu114:new

 

 

 

반응형