ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.