遷移在許多情況下都是不可避免的。硬件升級、數據中心變化、過時的操作系統,所有這些都可能成為遷移的觸發點。
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”)復制到新服務器。為了使這種方法成功,需要確定幾個關鍵點。
- 保留文件夾的權限和所有權。
- 遷移前停止Docker服務。
- 驗證兩臺服務器中的Docker版本是否兼容。
- 遷移前后驗證容器列表和功能。
- 環境變量和其他配置文件的路徑。
如果此方法由于任何故障而無法工作,我們將配置自定義腳本以將容器和鏡像從一臺服務器遷移到另一臺服務器。
結論:Docker容器廣泛應用于DevOps和基于web托管。今天我們討論了Docker工程師如何將Docker容器遷移到我們管理的Docker基礎設施中的另一臺服務器的各種方法。
到此這篇關于Docker容器遷移到其他服務器的5種方法的文章就介紹到這了,更多相關Docker容器遷移到服務器內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!