無網(wǎng)絡docker鏡像遷移的實現(xiàn)
1、背景
- 私服服務器:docker私服部署在沒有網(wǎng)絡的服務器A上。
- 應用程序服務器:無網(wǎng)絡服務器B,A和B可以相互通信
- 開發(fā)者:開發(fā)者的電腦C有網(wǎng)絡,C可以和A、B通信,可以上傳私服,部署應用。
2、私服安裝
有網(wǎng)絡環(huán)境保存鏡像
在有網(wǎng)絡的電腦B上,運行以下命令將Docker Registry鏡像保存為tar文件:
docker pull registry:2 docker save registry:2 > registry.tar
無網(wǎng)絡安裝
在服務器A上,運行以下命令加載并啟動Docker Registry:
docker load < registry.tar docker run -d -p 5000:5000 --restart=always --name registry registry:2
此時,服務器A上的Docker私有倉庫已經(jīng)啟動,監(jiān)聽在localhost:5000
。Docker Registry 本身不提供 Web 界面,默認僅提供 API 服務。
驗證是否成功
curl http://your-registry-ip:5000/v2/_catalog
- 預期響應:
{"repositories":[]}
(初始為空)。
部署可視化界面(非必須)
docker run -d \ -p 8081:80 \ -e REGISTRY_URL=http://your-registry-ip:5000/v2 \ -e REGISTRY_TRUST_ANY_SSL=true \ joxit/docker-registry-ui:static
訪問地址:http://localhost:8081
3、構建應用鏡像并上傳到私有倉庫
構建應用鏡像
在電腦C上,構建你的應用鏡像,例如:
docker build -t my-app:latest .
將應用鏡像推送到服務器A的私有倉庫
首先,將應用鏡像打上服務器A私有倉庫的標簽
docker tag my-app:latest <服務器A的IP地址>:5000/my-app:latest
然后,將鏡像推送到服務器A的私有倉庫:
docker push <服務器A的IP地址>:5000/my-app:latest
在推送過程中,Docker會將鏡像數(shù)據(jù)傳輸?shù)椒掌鰽上的私有倉庫。
4、運行鏡像
在服務器B上從私有倉庫拉取鏡像并運行應用。
拉取鏡像
在服務器B上,運行以下命令從私有倉庫拉取應用鏡像:
docker pull <服務器A的IP地址>:5000/my-app:latest
運行應用容器
拉取鏡像后,運行應用容器
docker run -d --name my-app-container <服務器A的IP地址>:5000/my-app:latest
到此這篇關于無網(wǎng)絡docker鏡像遷移的實現(xiàn)的文章就介紹到這了,更多相關docker無網(wǎng)絡鏡像遷移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker的WARNING:bridge-nf-call-iptables is disabled
這篇文章主要介紹了docker的WARNING:bridge-nf-call-iptables is disabled的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Docker Compose搭建Redis主從復制環(huán)境的實現(xiàn)步驟
在Docker中搭建Redis主從架構非常方便,下面是一個示例,演示如何使用Docker Compose設置一個Redis主從復制環(huán)境,文中有詳細的代碼示例,具有一定的參考價值,需要的朋友可以參考下2023-09-09