天天看點

無憂之道:Docker中容器的備份、恢複和遷移

所謂的容器,就是那些建立自docker鏡像的軟體層,它包含了獨立的linux檔案系統和開箱即用的應用程式。如果我們有一個在機器中運作着的docker容器,并且想要備份這些容器以便今後使用,或者想要遷移這些容器,那麼,本教程将幫助你掌握在linux作業系統中備份、恢複和遷移docker容器的方法。

我們怎樣才能在linux中備份、恢複和遷移docker容器呢?這裡為您提供了一些便捷的步驟。

無憂之道:Docker中容器的備份、恢複和遷移

<a target="_blank"></a>

首先,為了備份docker中的容器,我們會想看看我們想要備份的容器清單。要達成該目的,我們需要在我們運作着docker引擎,并已建立了容器的linux機器中運作 docker ps 指令。

<code># docker ps</code>

無憂之道:Docker中容器的備份、恢複和遷移

docker containers list

在此之後,我們要選擇我們想要備份的容器,然後去建立該容器的快照。我們可以使用 docker commit 指令來建立快照。

<code># docker commit -p 30b8f18f20b4 container-backup</code>

無憂之道:Docker中容器的備份、恢複和遷移

docker commit

該指令會生成一個作為docker鏡像的容器快照,我們可以通過運作 <code>docker images</code> 指令來檢視docker鏡像,如下。

<code># docker images</code>

無憂之道:Docker中容器的備份、恢複和遷移

docker images

正如我們所看見的,上面做的快照已經作為docker鏡像儲存了。現在,為了備份該快照,我們有兩個選擇,一個是我們可以登入進docker注冊中心,并推送該鏡像;另一個是我們可以将docker鏡像打包成tar包備份,以供今後使用。

<code># docker login</code>

無憂之道:Docker中容器的備份、恢複和遷移

docker login

<code># docker tag a25ddfec4d2a arunpyasi/container-backup:test</code>

<code># docker push arunpyasi/container-backup</code>

無憂之道:Docker中容器的備份、恢複和遷移

docker push

如果我們不想備份到docker注冊中心,而是想要将此鏡像儲存在本地機器中,以供日後使用,那麼我們可以将其作為tar包備份。要完成該操作,我們需要運作以下 <code>docker save</code> 指令。

<code># docker save -o ~/container-backup.tar container-backup</code>

無憂之道:Docker中容器的備份、恢複和遷移

taking tarball backup

要驗證tar包是否已經生成,我們隻需要在儲存tar包的目錄中運作 ls 指令即可。

接下來,在我們成功備份了我們的docker容器後,我們現在來恢複這些制作了docker鏡像快照的容器。如果我們已經在注冊中心推送了這些docker鏡像,那麼我們僅僅需要把那個docker鏡像拖回并直接運作即可。

<code># docker pull arunpyasi/container-backup:test</code>

無憂之道:Docker中容器的備份、恢複和遷移

docker pull

但是,如果我們将這些docker鏡像作為tar封包件備份到了本地,那麼我們隻要使用 docker load 指令,後面加上tar包的備份路徑,就可以加載該docker鏡像了。

<code># docker load -i ~/container-backup.tar</code>

現在,為了確定這些docker鏡像已經加載成功,我們來運作 docker images 指令。

在鏡像被加載後,我們将用加載的鏡像去運作docker容器。

<code># docker run -d -p 80:80 container-backup</code>

無憂之道:Docker中容器的備份、恢複和遷移

restoring docker tarball

遷移容器同時涉及到了上面兩個操作,備份和恢複。我們可以将任何一個docker容器從一台機器遷移到另一台機器。在遷移過程中,首先我們将把容器備份為docker鏡像快照。然後,該docker鏡像或者是被推送到了docker注冊中心,或者被作為tar封包件儲存到了本地。如果我們将鏡像推送到了docker注冊中心,我們簡單地從任何我們想要的機器上使用 docker run 指令來恢複并運作該容器。但是,如果我們将鏡像打包成tar包備份到了本地,我們隻需要拷貝或移動該鏡像到我們想要的機器上,加載該鏡像并運作需要的容器即可。

最後,我們已經學習了如何快速地備份、恢複和遷移docker容器,本教程适用于各個可以成功運作docker的作業系統平台。真的,docker是一個相當簡單易用,然而功能卻十分強大的工具。它的指令相當易記,這些指令都非常短,帶有許多簡單而強大的标記和參數。上面的方法讓我們備份容器時很是安逸,使得我們可以在日後很輕松地恢複它們。這會幫助我們恢複我們的容器和鏡像,即便主機系統崩潰,甚至意外地被清除。如果你還有很多問題、建議、回報,請在下面的評論框中寫出來吧,可以幫助我們改進或更新我們的内容。謝謝大家!享受吧 :-)

<b>原文釋出時間為:2015-08-06</b>

<b></b>

<b>本文來自雲栖社群合作夥伴“linux中國</b>

繼續閱讀