首先,爲了備份Docker中的容器,咱們會想看看咱們想要備份的容器列表。要達成該目的,咱們須要在咱們運行着Docker引擎,並已建立了容器的Linux機器中運行 docker ps 命令。docker
# docker ps
在此以後,咱們要選擇咱們想要備份的容器,而後去建立該容器的快照。咱們可使用 docker commit 命令來建立快照。spa
# docker commit -p 30b8f18f20b4 container-backup
該命令會生成一個做爲Docker鏡像的容器快照,咱們能夠經過運行 docker images
命令來查看Docker鏡像,以下。code
# docker images
正如咱們所看見的,上面作的快照已經做爲Docker鏡像保存了。如今,爲了備份該快照,咱們有兩個選擇,一個是咱們能夠登陸進Docker註冊中心,並推送該鏡像;另外一個是咱們能夠將Docker鏡像打包成tar包備份,以供從此使用。get
若是咱們想要在Docker註冊中心上傳或備份鏡像,咱們只須要運行 docker login 命令來登陸進Docker註冊中心,而後推送所需的鏡像便可。it
# docker login 172.16.101.192
# docker tag a25ddfec4d2a arunpyasi/container-backup:test
# docker push arunpyasi/container-backup
若是咱們不想備份到docker註冊中心,而是想要將此鏡像保存在本地機器中,以供往後使用,那麼咱們能夠將其做爲tar包備份。要完成該操做,咱們須要運行如下 docker save
命令。class
# docker save -o ~/container-backup.tar container-backup
要驗證tar包是否已經生成,咱們只須要在保存tar包的目錄中運行 ls 命令便可。test
接下來,在咱們成功備份了咱們的Docker容器後,咱們如今來恢復這些製做了Docker鏡像快照的容器。若是咱們已經在註冊中心推送了這些Docker鏡像,那麼咱們僅僅須要把那個Docker鏡像拖回並直接運行便可。容器
# docker pull arunpyasi/container-backup:test
可是,若是咱們將這些Docker鏡像做爲tar包文件備份到了本地,那麼咱們只要使用 docker load 命令,後面加上tar包的備份路徑,就能夠加載該Docker鏡像了。登錄
# docker load -i ~/container-backup.tar
如今,爲了確保這些Docker鏡像已經加載成功,咱們來運行 docker images 命令。打包
# docker images
在鏡像被加載後,咱們將用加載的鏡像去運行Docker容器。
# docker run -d -p 80:80 container-backup
遷移容器同時涉及到了上面兩個操做,備份和恢復。咱們能夠將任何一個Docker容器從一臺機器遷移到另外一臺機器。在遷移過程當中,首先咱們將把容器備份爲Docker鏡像快照。而後,該Docker鏡像或者是被推送到了Docker註冊中心,或者被做爲tar包文件保存到了本地。若是咱們將鏡像推送到了Docker註冊中心,咱們簡單地從任何咱們想要的機器上使用 docker run 命令來恢復並運行該容器。可是,若是咱們將鏡像打包成tar包備份到了本地,咱們只須要拷貝或移動該鏡像到咱們想要的機器上,加載該鏡像並運行須要的容器便可。