docker的備份方式有export和save兩種。
export是當前的狀態,針對的是容器,docker save 是針對鏡像images。
export
找出要備份容器的ID
[root@wls12c ~]$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS NAMES037b847bf093 centos "/bin/bash" 3 minutes ago Exited (0) 2 minute naughty_davinci
備份
[root@wls12c ~]$ docker export 037b847bf093 >centos_demo.tar[root@wls12c ~]$ du -sh centos_demo.tar 195M centos_demo.tar
export是把容器打成一個tar包。
恢復
把剛才備份的centos_demo.tar打包到目標服務器
[root@11g ~]$ cat centos_demo.tar |docker import - centos:demo8962416d1362f289ceb9848e21a95f03dc34eb6f234c8f98f1a6e1ec7fe34a67
查看新生成的鏡像
[root@11g ~]$ docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEcentos demo 8962416d1362 24 seconds ago 196.7 MB
save
得到鏡像名稱
[root@wls12c ~]$ docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEcentos latest d83a55af4e75 3 weeks ago 196.7 MB
備份鏡像
[root@wls12c ~]$ docker save centos >centos_save.tar
恢復鏡像
[root@11g ~]$ docker load <centos_save.tar
查看恢復的鏡像
[root@wls12c ~]$ docker imagesREPOSITORY TAG IMAGE ID CREATED centos latest d83a55af4e75 3 weeks ago 196.7 MB
兩者的區別:
導出后再導入(exported-imported)的鏡像會丟失所有的歷史,而保存后再加載(saveed-loaded)的鏡像沒有丟失歷史和層 (layer)。這意味著使用導出后再導入的方式,你將無法回滾到之前的層(layer),同時,使用保存后再加載的方式持久化整個鏡像,就可以做到層回 滾(可以執行docker tag <LAYER ID> <IMAGE NAME>來回滾之前的層)。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答
圖片精選