docker的備份方式有export和save兩種。
export是當(dāng)前的狀態(tài),針對的是容器,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包。
恢復(fù)
把剛才備份的centos_demo.tar打包到目標(biāo)服務(wù)器
[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
恢復(fù)鏡像
[root@11g ~]$ docker load <centos_save.tar
查看恢復(fù)的鏡像
[root@wls12c ~]$ docker imagesREPOSITORY TAG IMAGE ID CREATED centos latest d83a55af4e75 3 weeks ago 196.7 MB
兩者的區(qū)別:
導(dǎo)出后再導(dǎo)入(exported-imported)的鏡像會丟失所有的歷史,而保存后再加載(saveed-loaded)的鏡像沒有丟失歷史和層 (layer)。這意味著使用導(dǎo)出后再導(dǎo)入的方式,你將無法回滾到之前的層(layer),同時,使用保存后再加載的方式持久化整個鏡像,就可以做到層回 滾(可以執(zhí)行docker tag <LAYER ID> <IMAGE NAME>來回滾之前的層)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選