원본은 [ 여기 ]
● 컨테이너 백업
도커 이미지는 OS 를 담고 있으며, 하나 이상의 이미지를 가질수 있다.
도커 컨테이너는 이미지로부터 생성되는 실행중인 인스턴스이다.
도커 컨테이너 백업을 위해서는 commit 을 해야한다.
commit 을 하면 현재 상태가 도커 이미지로 저장된다.
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78727078a04b debian:8 "/bin/bash" 13 seconds ago Up 11 seconds container1
위의 docker ps 명령의 결과로 하나의 컨테이너가 up 상태임을 확인 할 수 있다.
컨테이너 아이디는 78727078a04b 이고, 컨테이너 이름은 container1 이다.
이제, commit 명령을 사용하여 현재 실행 상태를 스냅샷 떠보자.
# docker commit -p 78727078a04b container1
e09f9ac65c8b3095927c14ca0594868f73831bde0800ce66415afeb91aea93cf
-p 옵션은 커밋하기 위해 컨테이너를 일시 중지 시키는 옵션이다.
커밋 명령을 통해 container1 이란 이름의 이미지가 하나 생성되었음을 아래와 같이 확인 할 수 있다.
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
container1 latest e09f9ac65c8b 39 seconds ago 125.1 MB
이제 재배포 할 수 있는 컨테이너 백업 이미지 하나를 얻게 되었다.
다른 도커 호스트 시스템에 우리의 container1 이미지를 재배포(redeploy)하려면
개인 도커 레포지토리에 이미지를 푸쉬해야 한다.
# docker login
# docker push container1
또는 tar 로 묶어서 자유롭게 원하는 도커 호스트 시스템에 배포할 수도 있다.
# docker save -o ~/container1.tar container1
[root@localhost lubos]# ls -l ~/container1.tar
-rw-r--r--. 1 root root 131017216 Jun 14 20:31 /root/container1.tar
● 컨테이너 복원
앞서 도커 컨테이너를 백업하는 방법에 대해 알아보았다.
이번 섹션에서는 백업을 어떻게 복원하는지 알아보기로 한다.
개인 도커 레포지토리에 백업본을 push 한 경우에는 간단히 run 명령을 사용하여
container1 이미지로부터 새로운 인스턴스를 시작하면 된다.
tar 로 묶어서 백업한 경우 load 명령을 사용하여 도커의 로컬 이미지 레포지토리에 넣어주어야 한다.
-i 옵션은 --input 임.
# docker load -i /root/container1.tar
확인을 위해 아래 명령을 입력해보자.
# docker images
이미지 목록에 복원된 container1 이 나오면,
run 명령을 이용하여 container1 이미지로부터 새로운 인스턴스를 시작할 수 있다.