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

jopen 9年前發布 | 15K 次閱讀 Docker

今天,我們將學習如何快速地對docker容器進行快捷備份、恢復和遷移。Docker是一個開源平臺,用于自動化部署應用,以通過快捷的途徑在稱之為容器的輕量級軟件層下打包、發布和運行這些應用。它使得應用平臺獨立,因為它扮演了Linux上一個額外的操作系統級虛擬化的自動化抽象層。它通過其組件cgroups和命名空間利用Linux內核的資源分離特性,達到避免虛擬機開銷的目的。它使得用于部署和擴展web應用、數據庫和后端服務的大規模構建組件無需依賴于特定的堆棧或供應者。

所謂的容器,就是那些創建自Docker鏡像的軟件層,它包含了獨立的Linux文件系統和開箱即用的應用程序。如果我們有一個在機器中運行著的Docker容器,并且想要備份這些容器以便今后使用,或者想要遷移這些容器,那么,本教程將幫助你掌握在Linux操作系統中備份、恢復和遷移Docker容器的方法。

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

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

1. 備份容器

首先,為了備份Docker中的容器,我們會想看看我們想要備份的容器列表。要達成該目的,我們需要在我們運行著Docker引擎,并已創建了容器的Linux機器中運行 docker ps 命令。

# docker ps

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

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

# docker commit -p 30b8f18f20b4 container-backup

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

該命令會生成一個作為Docker鏡像的容器快照,我們可以通過運行docker images命令來查看Docker鏡像,如下。

# docker images

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

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

如果我們想要在Docker注冊中心上傳或備份鏡像,我們只需要運行 docker login 命令來登錄進Docker注冊中心,然后推送所需的鏡像即可。

# docker login

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

# docker tag a25ddfec4d2a arunpyasi/container-backup:test

docker push arunpyasi/container-backup</pre>

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

如果我們不想備份到docker注冊中心,而是想要將此鏡像保存在本地機器中,以供日后使用,那么我們可以將其作為tar包備份。要完成該操作,我們需要運行以下docker save命令。

# docker save -o ~/container-backup.tar container-backup

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

要驗證tar包是否已經生成,我們只需要在保存tar包的目錄中運行 ls 命令即可。

2. 恢復容器

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

# docker pull arunpyasi/container-backup:test

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

但是,如果我們將這些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中容器的備份、恢復和遷移

3. 遷移Docker容器

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

尾聲

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


via: http://linoxide.com/linux-how-to/backup-restore-migrate-containers-docker/

作者:Arun Pyasi 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

來源: https://linux.cn/article-5967-1.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!