遷移docker鏡像到新服務(wù)器的具體操作流程
遷移步驟詳解
要將 /home/docker/song-schedule 完整遷移到新服務(wù)器,需確保 代碼、數(shù)據(jù)、鏡像、配置 的一致性。
以下是具體操作流程:
1. 在舊服務(wù)器上準備遷移文件
1.1 打包項目目錄
# 進入項目目錄 cd /home/docker # 壓縮整個目錄(包含子目錄和隱藏文件) 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 解壓項目目錄
# 進入目標(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 # 驗證鏡像是否加載成功 docker images | grep -E "super-nginx|super-mall-admin-server|super-notes-server"
2.3 創(chuàng)建必要目錄
檢查所有掛載的宿主機目錄是否存在:
# 創(chuàng)建日志目錄
mkdir -p /mnt/logs/song-schedule/{file,super-mall-admin,super-notes}
# 創(chuàng)建文件存儲目錄
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 路徑一致性
• 確保所有掛載的 宿主機路徑 在新服務(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. 啟動服務(wù)
# 進入項目目錄 cd /home/docker/song-schedule # 啟動所有服務(wù)(使用 -d 后臺運行) docker-compose up -d # 查看服務(wù)狀態(tài) docker-compose ps # 檢查容器日志(示例) docker-compose logs super-web-nginx
5. 驗證遷移結(jié)果
- 訪問服務(wù):
• 通過瀏覽器或curl測試 HTTPS 端口(如https://新服務(wù)器IP:8086)。 - 檢查數(shù)據(jù)持久化:
• 確認/mnt/logs和/home/docker/song-schedule/file中有新日志和文件生成。 - 監(jiān)控容器狀態(tài):
docker ps -a | grep "song-schedule"
常見問題處理
• 問題1:容器啟動失敗,提示 “No such file or directory”
• 原因:掛載的宿主機目錄不存在或權(quán)限不足。
• 解決:檢查目錄路徑和權(quán)限,確保與 docker-compose.yml 一致。
• 問題2:Nginx 報錯 “SSL certificate not found”
• 原因:證書文件未正確掛載到容器。
• 解決:確認 /home/cert 中有證書文件,且容器內(nèi)路徑 /etc/nginx/cert 映射正確。
• 問題3:端口沖突
• 解決:修改 docker-compose.yml 中的宿主機端口(如 "8091:443"),然后重啟服務(wù):
```bash docker-compose down && docker-compose up -d
--- **遷移后優(yōu)化建議** 1. 使用 Docker Registry:將鏡像推送到私有倉庫(如 Harbor),避免手動導(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ù)名> 查看詳細錯誤日志。
總結(jié)
到此這篇關(guān)于遷移docker鏡像到新服務(wù)器的文章就介紹到這了,更多相關(guān)遷移docker鏡像到新服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker網(wǎng)絡(luò)配置及部署SpringCloud項目詳解
bridge模式是Docker默認的網(wǎng)絡(luò)設(shè)置,此模式會為每一個容器分配Network Namespace、設(shè)置IP等,并將一個主機上的Docker容器連接到一個虛擬網(wǎng)橋上,下面這篇文章主要給大家介紹了關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項目的相關(guān)資料,需要的朋友可以參考下2023-01-01
Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié)
本文主要介紹了Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
keepalived+nginx+httpd實現(xiàn)的雙機熱備+負載均衡
本文主要介紹了keepalived + nginx + httpd 實現(xiàn)的雙機熱備+負載均衡,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
項目訪問使用docker bridge網(wǎng)絡(luò)模式(端口映射)配置過程
這篇文章主要介紹了項目訪問使用docker bridge網(wǎng)絡(luò)模式(端口映射)配置過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03

