August 22, 2019

Docker Save - 이미지 백업 (.tar)

Docker Save - Image backup (.tar file)

앞전 "export" 으로 도커 컨테이너 추출하는 명령과 다르게 "save" 명령은 레이어 구조도 포함하여 압축합니다.

또한 1개 이상으로 동시에 tar 파일로 백업할 수 있어 추후에 복구할 수 있습니다.


docker image save <옵션> <이미지1, 이미지2, 이미지 n...>

아래 옵션을 통해 확인해보도록 하겠습니다.




dongdonge@dongdonge$ docker image save --help

Usage:  docker image save [OPTIONS] IMAGE [IMAGE...]

Save one or more images to a tar archive (streamed to STDOUT by default)

Options:
  -o, --output string   Write to a file, instead of STDOUT

별다른 옵션이 존재하지 않으므로 아래 예시를 통해 사용해보겠습니다.




dongdonge@dongdonge$ docker images
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
webservice/web-server                 1.4                 1dd352e0b911        24 hours ago        235MB
ubuntu                                latest              4c108a37151f        2 months ago        64.2MB

현재 2개의 이미지가 존재하므로 2개 모두 tar 아카이브 파일로 백업을 해보겠습니다.




dongdonge@dongdonge$ docker image save -o back_2019.tar webservice/web-server ubuntu


dongdonge@dongdonge$ ls
back_2019.tar

도커 이미지 "webservice/web-server"와 "ubuntu"를 "back_2019.tar" 파일로 백업이 된걸 볼 수 있습니다.




dongdonge@dongdonge$ tar -xvf back_2019.tar

1dd352e0b9116c9612169ba2a69417ada350222fdde5f60f45043b4ada94967f.json
4c108a37151f54439950335c409802e948883e00c93fdb751d206c9a9674c1f6.json
5296339821b9ad382f4a7b5f69b133399e6ccba0ceb94d9c78c552c5b9749fda/
5296339821b9ad382f4a7b5f69b133399e6ccba0ceb94d9c78c552c5b9749fda/VERSION
5296339821b9ad382f4a7b5f69b133399e6ccba0ceb94d9c78c552c5b9749fda/json
5296339821b9ad382f4a7b5f69b133399e6ccba0ceb94d9c78c552c5b9749fda/layer.tar
738c1346d982f4af9c0f4dfcf619f6b126e47b68c204c0ec6513fe072c3c61af/
738c1346d982f4af9c0f4dfcf619f6b126e47b68c204c0ec6513fe072c3c61af/VERSION
738c1346d982f4af9c0f4dfcf619f6b126e47b68c204c0ec6513fe072c3c61af/json
738c1346d982f4af9c0f4dfcf619f6b126e47b68c204c0ec6513fe072c3c61af/layer.tar
8a3c93da519db75caf01c43610d0e43756bbbdb91f3f84e14f9b4d1bbe150900/
8a3c93da519db75caf01c43610d0e43756bbbdb91f3f84e14f9b4d1bbe150900/VERSION
8a3c93da519db75caf01c43610d0e43756bbbdb91f3f84e14f9b4d1bbe150900/json
8a3c93da519db75caf01c43610d0e43756bbbdb91f3f84e14f9b4d1bbe150900/layer.tar
a2938fe975763a00326a3f608be01c64a30fa122c2656eb7a249f92269a00bd3/
a2938fe975763a00326a3f608be01c64a30fa122c2656eb7a249f92269a00bd3/VERSION
a2938fe975763a00326a3f608be01c64a30fa122c2656eb7a249f92269a00bd3/json
a2938fe975763a00326a3f608be01c64a30fa122c2656eb7a249f92269a00bd3/layer.tar
efa2bf230ac8b7511c5ba056f535dc9c8ba4dd7e64aef5eaea30720982c515b2/
efa2bf230ac8b7511c5ba056f535dc9c8ba4dd7e64aef5eaea30720982c515b2/VERSION
efa2bf230ac8b7511c5ba056f535dc9c8ba4dd7e64aef5eaea30720982c515b2/json
efa2bf230ac8b7511c5ba056f535dc9c8ba4dd7e64aef5eaea30720982c515b2/layer.tar
manifest.json
repositories

압축을 풀어 내부 파일을 확인해보면 "export"와 다르게 레이어 구조로 되어 있습니다.

다음 편에 방금 생성한 tar 파일을 가지고 "import" load 명령을 사용하여 이미지 로드 해보겠습니다.