將Docker鏡像從服務(wù)器A遷移到服務(wù)器B的三種方法
在日常工作中,我們有時會需要將服務(wù)器 A上的鏡像上傳至服務(wù)器B上,下面給出具體操作方式,以鏡像 postgres:15
為例進(jìn)行講解。
首先在服務(wù)器A上拉取 鏡像 postgres:15
,命令如下:
docker pull postgres:15
下面再將服務(wù)器A上的postgres:15
鏡像上傳至服務(wù)器B,主要有以下幾種方式:
方法1:使用 Docker Save 和 Load(推薦)
- 在服務(wù)器A上保存鏡像為tar文件:
docker save -o postgres15.tar postgres:15
- 將tar文件傳輸?shù)椒?wù)器B(使用scp或其他方式):
scp postgres15.tar user@serverB:/path/to/destination
- 在服務(wù)器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 權(quán)限執(zhí)行 docker load 命令
sudo docker load -i postgres15.tar
- 在服務(wù)器B上查看鏡像:
docker images
方法2:使用 Docker Hub 作為中轉(zhuǎn)
- 在服務(wù)器A上登錄Docker Hub:
docker login
- 給鏡像打標(biāo)簽并推送(需要你有Docker Hub賬戶):
docker tag postgres:15 yourusername/postgres:15 docker push yourusername/postgres:15
- 在服務(wù)器B上拉取鏡像:
docker pull yourusername/postgres:15
方法3:使用私有倉庫中轉(zhuǎn)(內(nèi)網(wǎng)環(huán)境)
如果你有私有Docker倉庫(如Harbor等):
- 在服務(wù)器A上打標(biāo)簽并推送:
docker tag postgres:15 your-registry.com/your-project/postgres:15 docker push your-registry.com/your-project/postgres:15
- 在服務(wù)器B上拉?。?/li>
docker pull your-registry.com/your-project/postgres:15
注:私有倉庫中轉(zhuǎn)的方式很適合于服務(wù)器無法連接外網(wǎng)的情況,通過內(nèi)部網(wǎng)絡(luò)(私有倉庫)進(jìn)行中轉(zhuǎn)。
以上就是將Docker鏡像從服務(wù)器A遷移到服務(wù)器B的三種方法的詳細(xì)內(nèi)容,更多關(guān)于Docker鏡像遷移的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用docker compose搭建一個elk系統(tǒng)的方法
這篇文章主要介紹了使用docker-compose搭建一個elk系統(tǒng)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08Docker Cloud實現(xiàn)部署應(yīng)用操作詳解
這篇文章主要介紹了Docker Cloud實現(xiàn)部署應(yīng)用操作,較為詳細(xì)的分析了Docker Cloud部署應(yīng)用的步驟、命令、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下2018-06-06Docker中優(yōu)化Mysql運行內(nèi)存的操作
這篇文章主要介紹了Docker當(dāng)中優(yōu)化Mysql運行內(nèi)存的操作,經(jīng)過一番操作可以優(yōu)化為只占用100mb內(nèi)存,具體優(yōu)化方法及技巧跟隨小編一起看看吧2022-01-01