介紹Docker容器遷移到其他服務器的5種方法

遷移在許多情況下都是不可避免的。硬件升級、數據中心變化、過時的操作系統,所有這些都可能成爲遷移的觸發點。

Docker容器遷移通常是遷移任務的一部分。今天我們將看到將Docker容器從現有服務器遷移到另一臺服務器的不同方法。

如何將Docker容器遷移到另一臺服務器,沒有直接將Docker容器從一臺服務器遷移到另一臺服務器的方法,我們通過使用下面這些方法中的一個或多個來解決Docker容器遷移的問題。

1、導出和導入容器

導出容器意味着從容器的文件系統創建壓縮文件,導出的文件保存爲“gzip”文件。

docker export container-name | gzip > container-name.gz

然後通過文件傳輸工具(如scp或rsync)將壓縮文件複製到新服務器。在新服務器中,這個gzip文件隨後被導入到一個新容器中。

zcat container-name.gz | docker import - container-name

可以使用“docker run”命令訪問在新服務器中創建的新容器。

導出容器工具的一個缺點是,它不導出容器的端口和變量,也不導出包含容器的底層數據。

當嘗試在另一臺服務器中加載容器時,這可能會導致錯誤。在這種情況下,我們選擇Docker鏡像遷移來將容器從一臺服務器遷移到另一臺服務器。

2、容器鏡像遷移

將Docker容器遷移到另一臺服務器的最常用方法是遷移容器關聯到的鏡像。

對於必須遷移的容器,首先使用“Docker commit”命令將其Docker鏡像保存到壓縮文件中。

docker commit container-id image-name

生成的鏡像將被壓縮並上傳到新服務器上,在新服務器中,將使用“docker run”創建一個新容器。

使用此方法,數據卷不會被遷移,但它會保留在容器內創建的應用程序的數據。

3、保存和加載鏡像

docker鏡像是應用程序的代碼、庫、配置文件等的包。Docker容器是由這些鏡像創建的。

可以使用“docker save”壓縮鏡像並將其遷移到新服務器。

docker save image-name > image-name.tar

在新服務器中,使用“docker load”將壓縮鏡像文件用於創建新鏡像。

cat image-name.tar | docker load
4、遷移數據卷

Docker容器中的數據卷是共享目錄,其中包含特定於容器的數據。卷中的數據是持久的,在容器重新創建期間不會丟失。

使用導出或提交工具將Docker容器或鏡像從一臺服務器遷移到另一臺服務器時,不會遷移基礎數據卷。

在這種情況下,包含數據的目錄將手動遷移到新服務器。然後在新服務器創建容器,引用該目錄作爲其數據卷。

另一個簡單的方法是通過在“docker run”命令中傳遞“-volumes from”參數來備份和恢復數據卷。

docker run --rm --volumes-from datavolume-name -v $(pwd):/backup image-name tar cvf backup.tar /path-to-datavolume

這裏,datavolume名稱是/path/to/volume。此命令提供數據卷的備份。要指定工作目錄,還可以指定-w/backup。在/backup文件夾中生成的備份可以通過scp或ftp工具複製到新服務器。然後提取複製的備份並將其還原到新容器中的數據卷中。

docker run --rm --volumes-from datavolume-name -v $(pwd):/backup image-name bash -c "cd /path-to-datavolume && tar xvf /backup/backup.tar --strip 1"
5、遷移整個Docker容器

我們在這裏看到的方法適用於單個容器。但是將所有容器都要從一臺服務器遷移到另一臺服務器的情況下,我們採用另一種方法。

此方法包括將整個docker目錄(“/var/lib/docker”)複製到新服務器。爲了使這種方法成功,需要確定幾個關鍵點。

  1. 保留文件夾的權限和所有權。
    遷移前停止Docker服務。
    驗證兩臺服務器中的Docker版本是否兼容。
    遷移前後驗證容器列表和功能。
    環境變量和其他配置文件的路徑。

如果此方法由於任何故障而無法工作,我們將配置自定義腳本以將容器和鏡像從一臺服務器遷移到另一臺服務器。

結論:Docker容器廣泛應用於DevOps和基於web託管。今天我們討論了Docker工程師如何將Docker容器遷移到我們管理的Docker基礎設施中的另一臺服務器的各種方法。

 

本文地址:https://www.linuxprobe.com/docker-migrate.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章