Docker—備份、恢復及遷移


用容器生成鏡像

[root@git docker]# docker ps
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS                 PORTS                                                            NAMES
e950a988d058        twang2218/gitlab-ce-zh   "/assets/wrapper"   2 hours ago         Up 2 hours (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:2222->22/tcp   gitlab-wahaha
[root@git docker]# docker commit e950a988d058 gitalb-zh
sha256:dd61a1ec3cdc782d6076e47afc10a35e19700a9ad56df6630a8c1de1c1c105c3
[root@git docker]# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
gitalb-zh                          latest              dd61a1ec3cdc        6 seconds ago       1.72 GB
docker.io/twang2218/gitlab-ce-zh   latest              1f71f185271a        9 days ago          1.63 GB

 

備份:

查看鏡像

[root@git docker]# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
docker.io/twang2218/gitlab-ce-zh   latest              1f71f185271a        9 days ago          1.63 GB
docker save -o [tar包真實路徑] [鏡像名 ](ID也可以)
ocker save -o /opt/docker-gitlab-ce-zh.tar  docker.io/twang2218/gitlab-ce-zh

恢復:

docker load -i [tar包真實路徑]

docker load -i /opt/docker-gitlab-ce-zh.tar

導出:是根據容器的  ID  進行導出鏡像

[root@git docker]# docker ps  -a
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS                 PORTS                                                            NAMES
e950a988d058        twang2218/gitlab-ce-zh   "/assets/wrapper"   3 hours ago         Up 3 hours (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:2222->22/tcp   gitlab-wahaha
[root@git docker]# docker export e950a988d058 > /opt/gitlab-zh.tar
[root@git docker]# ls -lh /opt/
total 3.1G
-rw------- 1 root root 1.7G Mar 20 02:16 docker-gitlab-ce-zh.tar
-rw-r--r-- 1 root root 1.5G Mar 20 02:38 gitlab-zh.tar

可以看出導出的鏡像比備份的鏡像小很多,是因為導出的鏡像沒歷史數據,不能回滾

導入:

[root@git docker]# docker import - git-mast < /opt/gitlab-zh.tar
 git-mast鏡像名(注意中間的  -   )
[root@git docker]# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
git-mast                           latest              6dfab05161f9        14 seconds ago      1.49 GB
docker/gitlab-zh                   latest              aebe317ba2a3        16 minutes ago      1.72 GB
gitalb-zh                          latest              dd61a1ec3cdc        25 minutes ago      1.72 GB
docker.io/twang2218/gitlab-ce-zh   latest              1f71f185271a        9 days ago          1.63 GB

注:導出 export 與 保存 save 的區別

 (1).export導出的鏡像文件大小  小於 save保存的鏡像

 (2).export 導出(import導入)是根據容器拿到的鏡像,再導入時會丟失鏡像所有的歷史,所以無法進行回滾操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加載)的鏡像,沒有丟失鏡像的歷史,可以回滾到之前的層(layer)。(查看方式:docker images --tree)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM