將Docker鏡像從服務器A遷移到服務器B的三種方法
在日常工作中,我們有時會需要將服務器 A上的鏡像上傳至服務器B上,下面給出具體操作方式,以鏡像 postgres:15 為例進行講解。
首先在服務器A上拉取 鏡像 postgres:15 ,命令如下:
docker pull postgres:15
下面再將服務器A上的postgres:15鏡像上傳至服務器B,主要有以下幾種方式:
方法1:使用 Docker Save 和 Load(推薦)
- 在服務器A上保存鏡像為tar文件:
docker save -o postgres15.tar postgres:15
- 將tar文件傳輸?shù)椒掌鰾(使用scp或其他方式):
scp postgres15.tar user@serverB:/path/to/destination
- 在服務器B上加載鏡像:
docker load -i postgres15.tar
注意:這里可能出現(xiàn)報錯:
permission denied while trying to connect to the Docker daemon socket >at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.44/images/load?quiet=0": dial >unix /var/run/docker.sock: connect: permission denied
解決方式:使用 sudo 權限執(zhí)行 docker load 命令
sudo docker load -i postgres15.tar
- 在服務器B上查看鏡像:
docker images

方法2:使用 Docker Hub 作為中轉
- 在服務器A上登錄Docker Hub:
docker login
- 給鏡像打標簽并推送(需要你有Docker Hub賬戶):
docker tag postgres:15 yourusername/postgres:15 docker push yourusername/postgres:15
- 在服務器B上拉取鏡像:
docker pull yourusername/postgres:15
方法3:使用私有倉庫中轉(內網環(huán)境)
如果你有私有Docker倉庫(如Harbor等):
- 在服務器A上打標簽并推送:
docker tag postgres:15 your-registry.com/your-project/postgres:15 docker push your-registry.com/your-project/postgres:15
- 在服務器B上拉?。?/li>
docker pull your-registry.com/your-project/postgres:15
注:私有倉庫中轉的方式很適合于服務器無法連接外網的情況,通過內部網絡(私有倉庫)進行中轉。
以上就是將Docker鏡像從服務器A遷移到服務器B的三種方法的詳細內容,更多關于Docker鏡像遷移的資料請關注腳本之家其它相關文章!
相關文章
docker容器內要啟動兩個進程時Dockerfile的實現(xiàn)代碼
這篇文章主要介紹了docker容器內要啟動兩個進程時Dockerfile的實現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Docker+selenium實現(xiàn)自動化健康報備的方法
這篇文章主要介紹了Docker+selenium實現(xiàn)自動化健康報備的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
解決Docker x509 insecure registry的問題
這篇文章主要介紹了解決Docker x509 insecure registry的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Docker遇到502 Bad Gateway問題的排查與解決方法
本文詳細描述了線上部署內容服務時遇到的502 Bad Gateway問題,表面現(xiàn)象指向Nginx和Docker網絡,但最終發(fā)現(xiàn)根因在于應用代碼中使用不可重入鎖導致的死鎖,通過調整鎖的類型并進行部署,問題得以解決,需要的朋友可以參考下2026-04-04

