-
[Docker] 이미지 아카이브Docker 2019. 4. 2. 23:00
컨테이너 이미지 아카이브
도커 호스트의 컨테이너 이미지를 아카이빙할 수 있다. 만약 구동중인 컨테이너의 이미지를 아카이빙하려면 docker commit 명령으로 이미지를 만들어서 아키이빙해야한다.
docker save 명령으로 여러 컨테이너 이미지를 아카이브로 추출할 수 있다.
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest 5eace252f2f2 6 days ago 132MB centos latest 9f38484d220f 2 weeks ago 202MB $ docker save -o archive-img.tar centos httpd $ file archive-img.tar archive-img.tar: POSIX tar archive $ tar tf archive-img.tar 18d338c9f4c0f2d3c8f8a0c16932fe3511e97cf7788620ad91dfb60a2d8ed415/ 18d338c9f4c0f2d3c8f8a0c16932fe3511e97cf7788620ad91dfb60a2d8ed415/VERSION 18d338c9f4c0f2d3c8f8a0c16932fe3511e97cf7788620ad91dfb60a2d8ed415/json 18d338c9f4c0f2d3c8f8a0c16932fe3511e97cf7788620ad91dfb60a2d8ed415/layer.tar 30dceb5798f74a3abcc1ebdbe19b45ac18f59631e9e07480f0cb153aa94ef600/ 30dceb5798f74a3abcc1ebdbe19b45ac18f59631e9e07480f0cb153aa94ef600/VERSION 30dceb5798f74a3abcc1ebdbe19b45ac18f59631e9e07480f0cb153aa94ef600/json 30dceb5798f74a3abcc1ebdbe19b45ac18f59631e9e07480f0cb153aa94ef600/layer.tar 3dd8a7a03c185daa33b52d9d0bb475d902915732e5fdc92a4dd2c93c58fe9d14/ 3dd8a7a03c185daa33b52d9d0bb475d902915732e5fdc92a4dd2c93c58fe9d14/VERSION 3dd8a7a03c185daa33b52d9d0bb475d902915732e5fdc92a4dd2c93c58fe9d14/json 3dd8a7a03c185daa33b52d9d0bb475d902915732e5fdc92a4dd2c93c58fe9d14/layer.tar 5eace252f2f29e8a7471fd25f0a9f5dd21b1b85974817870c51cc2865529a293.json 94e3127d54427270c22979e8c5029054e34cfa66ed29a3e05c113e9d41d846f5/ 94e3127d54427270c22979e8c5029054e34cfa66ed29a3e05c113e9d41d846f5/VERSION 94e3127d54427270c22979e8c5029054e34cfa66ed29a3e05c113e9d41d846f5/json 94e3127d54427270c22979e8c5029054e34cfa66ed29a3e05c113e9d41d846f5/layer.tar 97f043d241d89a3fc54ba1f0dfb14fe804914ed7eadbef9dc7ceafafd7d75b72/ 97f043d241d89a3fc54ba1f0dfb14fe804914ed7eadbef9dc7ceafafd7d75b72/VERSION 97f043d241d89a3fc54ba1f0dfb14fe804914ed7eadbef9dc7ceafafd7d75b72/json 97f043d241d89a3fc54ba1f0dfb14fe804914ed7eadbef9dc7ceafafd7d75b72/layer.tar 9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1.json c88be338b4f3b3045f6611bce323c456b3119d96c18bb7d18ae2c9812a1271c9/ c88be338b4f3b3045f6611bce323c456b3119d96c18bb7d18ae2c9812a1271c9/VERSION c88be338b4f3b3045f6611bce323c456b3119d96c18bb7d18ae2c9812a1271c9/json c88be338b4f3b3045f6611bce323c456b3119d96c18bb7d18ae2c9812a1271c9/layer.tar manifest.json repositories
docker load 명령으로 아카이브 파일을 불러올 수 있다.
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE $ docker load -i archive-img.tar d69483a6face: Loading layer [==================================================>] 209.5MB/209.5MB Loaded image: centos:latest 5dacd731af1b: Loading layer [==================================================>] 58.45MB/58.45MB 2bca991cdc4d: Loading layer [==================================================>] 2.56kB/2.56kB 9b4799ea4c4c: Loading layer [==================================================>] 34.61MB/34.61MB 2c4844038a98: Loading layer [==================================================>] 43.59MB/43.59MB e0a202bcac77: Loading layer [==================================================>] 3.584kB/3.584kB Loaded image: httpd:latest $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest 5eace252f2f2 6 days ago 132MB centos latest 9f38484d220f 2 weeks ago 202MB
컨테이너 파일 시스템 아카이브
docker export 명령으로 컨테이너의 파일 시스템을 아카이브할 수 있다.
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fe68103f36af centos "/bin/bash" 11 seconds ago Up 10 seconds devaom-centos $ docker export -o archive-fs.tar devaom-centos $ tar tf archive-fs.tar | head .dockerenv anaconda-post.log bin dev/ dev/console dev/pts/ dev/shm/ etc/ etc/.pwd.lock etc/BUILDTIME
docker import 명령으로 컨테이너 파일시스템 아카이브 파일로 이미지를 생성할 수 있다.
$ docker import archive-fs.tar devaom-centos:exported sha256:6526dfeaa9d1444e1fe1087998506f3b50cad38842266ca35142fa54efa8ab15 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE devaom-centos exported 6526dfeaa9d1 46 seconds ago 202MB centos latest 9f38484d220f 2 weeks ago 202MB
이 이미지는 컨테이너 파일 시스템만 아카이빙한 것이므로 이 이미지로 바로 컨테이너를 실행할 수 없음에 유의하자.
$ docker run -itd --name test devaom-centos:exported docker: Error response from daemon: No command specified.
'Docker' 카테고리의 다른 글
[Docker] 자체 네트워크 드라이버 (0) 2019.04.08 [Docker] Dockerfile (1) 2019.04.04 [Docker] 데이터 볼륨 (0) 2019.04.03 [Docker] 컨테이너의 구조 (1) 2019.04.02