遷移docker鏡像到新服務(wù)器的具體操作流程
遷移步驟詳解
要將 /home/docker/song-schedule
完整遷移到新服務(wù)器,需確保 代碼、數(shù)據(jù)、鏡像、配置 的一致性。
以下是具體操作流程:
1. 在舊服務(wù)器上準(zhǔn)備遷移文件
1.1 打包項(xiàng)目目錄
# 進(jìn)入項(xiàng)目目錄 cd /home/docker # 壓縮整個(gè)目錄(包含子目錄和隱藏文件) tar czvf song-schedule.tar.gz song-schedule/
1.2 導(dǎo)出 Docker 鏡像
由于服務(wù)依賴本地構(gòu)建的鏡像(如 super-nginx:001
、super-mall-admin-server:v001
),需將鏡像導(dǎo)出為文件:
# 列出所有相關(guān)鏡像 docker images | grep -E "super-nginx|super-mall-admin-server|super-notes-server" # 導(dǎo)出鏡像(示例) docker save -o super-nginx-001.tar super-nginx:001 docker save -o super-mall-admin-server-v001.tar super-mall-admin-server:v001 docker save -o super-notes-server-v002.tar super-notes-server:v002
1.3 復(fù)制文件到新服務(wù)器
將以下文件通過 scp
或 rsync
傳輸?shù)叫路?wù)器的相同路徑(如 /home/docker
):
• song-schedule.tar.gz
• 導(dǎo)出的鏡像文件(super-nginx-001.tar
等)
• 證書目錄 /home/cert
(如果新服務(wù)器沒有證書需同步)
• 掛載的日志和文件目錄(如 /mnt/logs
)
# 示例:使用 scp 傳輸 scp song-schedule.tar.gz root@新服務(wù)器IP:/home/docker/ scp /home/cert/* root@新服務(wù)器IP:/home/cert/ scp /mnt/logs/song-schedule/* root@新服務(wù)器IP:/mnt/logs/song-schedule/
2. 在新服務(wù)器上恢復(fù)環(huán)境
2.1 解壓項(xiàng)目目錄
# 進(jìn)入目標(biāo)目錄 cd /home/docker # 解壓文件 tar xzvf song-schedule.tar.gz
2.2 加載 Docker 鏡像
# 加載鏡像(需在解壓后的目錄外操作) docker load -i super-nginx-001.tar docker load -i super-mall-admin-server-v001.tar docker load -i super-notes-server-v002.tar # 驗(yàn)證鏡像是否加載成功 docker images | grep -E "super-nginx|super-mall-admin-server|super-notes-server"
2.3 創(chuàng)建必要目錄
檢查所有掛載的宿主機(jī)目錄是否存在:
# 創(chuàng)建日志目錄 mkdir -p /mnt/logs/song-schedule/{file,super-mall-admin,super-notes} # 創(chuàng)建文件存儲(chǔ)目錄 mkdir -p /home/docker/song-schedule/file/defaultBucketName # 設(shè)置目錄權(quán)限(避免容器無權(quán)限寫入) chmod -R 755 /mnt/logs /home/docker/song-schedule
3. 修改配置適配新環(huán)境
檢查 docker-compose.yml
中以下內(nèi)容是否需調(diào)整:
3.1 路徑一致性
• 確保所有掛載的 宿主機(jī)路徑 在新服務(wù)器存在(如 /home/cert
、/mnt/logs
)。
• 如果新服務(wù)器路徑不同,需修改 volumes
部分(例如將 /home/cert
改為 /etc/nginx/cert
)。
3.2 端口沖突
檢查新服務(wù)器的端口是否被占用(如 8084-8087、8090):
netstat -tuln | grep -E "8084|8085|8086|8087|8090"
若端口沖突,修改 ports
配置(如 "8088:443"
)。
3.3 證書配置
確保 /home/cert
目錄包含有效的 SSL 證書文件(如 cert.pem
和 key.pem
),且文件名與 Nginx 配置中的路徑一致。
4. 啟動(dòng)服務(wù)
# 進(jìn)入項(xiàng)目目錄 cd /home/docker/song-schedule # 啟動(dòng)所有服務(wù)(使用 -d 后臺(tái)運(yùn)行) docker-compose up -d # 查看服務(wù)狀態(tài) docker-compose ps # 檢查容器日志(示例) docker-compose logs super-web-nginx
5. 驗(yàn)證遷移結(jié)果
- 訪問服務(wù):
• 通過瀏覽器或curl
測(cè)試 HTTPS 端口(如https://新服務(wù)器IP:8086
)。 - 檢查數(shù)據(jù)持久化:
• 確認(rèn)/mnt/logs
和/home/docker/song-schedule/file
中有新日志和文件生成。 - 監(jiān)控容器狀態(tài):
docker ps -a | grep "song-schedule"
常見問題處理
• 問題1:容器啟動(dòng)失敗,提示 “No such file or directory”
• 原因:掛載的宿主機(jī)目錄不存在或權(quán)限不足。
• 解決:檢查目錄路徑和權(quán)限,確保與 docker-compose.yml
一致。
• 問題2:Nginx 報(bào)錯(cuò) “SSL certificate not found”
• 原因:證書文件未正確掛載到容器。
• 解決:確認(rèn) /home/cert
中有證書文件,且容器內(nèi)路徑 /etc/nginx/cert
映射正確。
• 問題3:端口沖突
• 解決:修改 docker-compose.yml
中的宿主機(jī)端口(如 "8091:443"
),然后重啟服務(wù):
```bash docker-compose down && docker-compose up -d
--- **遷移后優(yōu)化建議** 1. 使用 Docker Registry:將鏡像推送到私有倉庫(如 Harbor),避免手動(dòng)導(dǎo)出導(dǎo)入。 2. 環(huán)境變量化配置:將路徑、端口等提取到 `.env` 文件,便于跨環(huán)境管理: ```properties # .env 文件示例 CERT_PATH=/home/cert LOG_PATH=/mnt/logs
在 docker-compose.yml
中引用:
volumes: - ${CERT_PATH}:/etc/nginx/cert
- 日志集中管理:使用 ELK 或 Grafana Loki 收集容器日志,替代直接掛載日志目錄。
通過以上步驟,您可以完整遷移服務(wù)并確保數(shù)據(jù)一致性。如果遇到問題,可通過 docker-compose logs <服務(wù)名>
查看詳細(xì)錯(cuò)誤日志。
總結(jié)
到此這篇關(guān)于遷移docker鏡像到新服務(wù)器的文章就介紹到這了,更多相關(guān)遷移docker鏡像到新服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker運(yùn)行nginx鏡像的實(shí)現(xiàn)步驟
這篇文章主要介紹了docker運(yùn)行nginx鏡像的實(shí)現(xiàn),并將配置文件和目錄掛載到宿主機(jī)上,以實(shí)現(xiàn)方便統(tǒng)一的管理配置信息,感興趣的可以了解一下2023-10-10Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目詳解
bridge模式是Docker默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會(huì)為每一個(gè)容器分配Network Namespace、設(shè)置IP等,并將一個(gè)主機(jī)上的Docker容器連接到一個(gè)虛擬網(wǎng)橋上,下面這篇文章主要給大家介紹了關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-01-01docker拉取redis最新鏡像并運(yùn)行的方法詳解
這篇文章主要介紹了docker拉取redis最新鏡像并運(yùn)行的方法,文章通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-05-05Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié)
本文主要介紹了Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08keepalived+nginx+httpd實(shí)現(xiàn)的雙機(jī)熱備+負(fù)載均衡
本文主要介紹了keepalived + nginx + httpd 實(shí)現(xiàn)的雙機(jī)熱備+負(fù)載均衡,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07項(xiàng)目訪問使用docker bridge網(wǎng)絡(luò)模式(端口映射)配置過程
這篇文章主要介紹了項(xiàng)目訪問使用docker bridge網(wǎng)絡(luò)模式(端口映射)配置過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03