관리 메뉴

AI 세상 ?

컨테이너 백업 및 복원하기 본문

Docker&Container/Docker

컨테이너 백업 및 복원하기

phpdoumi 2018. 8. 2. 14:07

원본은 [ 여기 ]


● 컨테이너 백업


도커 이미지는 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 이미지로부터 새로운 인스턴스를 시작할 수 있다.