原容器存在以下問題
- 容器掛載在根節(jié)點,根節(jié)點容量不夠章办;
- 容器沒有綁定宿主機目錄;
解決方式
- 使用ln -s 軟連接達到對數(shù)據(jù)遷移
- 使用鏡像方式,對目錄重新綁定(綁定前需要把前容器數(shù)據(jù)導(dǎo)出到綁定目錄下)
操作
- 首先對數(shù)據(jù)進行安全備份瓮下,確保失敗后能正常使用忠聚!
- 軟鏈接
- 提交鏡像
- 生成新容器,要通過添加-v或者-mount來綁定當(dāng)目標(biāo)目錄
軟鏈接
// 停止服務(wù)
service docker stop
// 復(fù)制數(shù)據(jù)到新的存放路徑:
cp -r /var/lib/docker/* /home/docker
// 備份
mv /var/lib/docker /home/dockerback
// 創(chuàng)建軟連接
ln -s /home/docker /var/lib/docker
// 啟動服務(wù)
service docker start
確認容器完整后可以刪除備份
提交新的鏡像
- 查看原容器id: docker ps -a
- 提交為鏡像:docker commit 5a11422adeead imageName
生產(chǎn)新容器,要通過添加-v或者-mount來綁定當(dāng)目標(biāo)目錄
- 導(dǎo)出原容器數(shù)據(jù)到要綁定的目錄下
- 創(chuàng)建容器:
# pro
docker run --name web1-test-image-now-docker-1-2 \
--hostname web1 \
--restart=on-failure:10 \
-tid \
-p 18091:8097 \
-v /etc/timezone:/etc/timezone \
-v /etc/localtime:/etc/localtime \
-v /opt/web1/webapps.jar:/opt/webapps.jar \
--mount type=bind,src=/home/web1/logs/,dst=/opt/logs \
--mount type=bind,src=/home/web1/res/,dst=res/ \
--mount type=bind,src=/home/web1/,dst=/web1/ \
web1-image-2020-04-08 \
java -jar -Dspring.profiles.active=pro /opt/webapps.jar --spring.profiles.active=pro /
// 啟動
docker start web1-test-image-now-docker-1-2
異常
遷移后無法啟動容器,查看日志發(fā)現(xiàn)如下異常需要對遷移后的docker文件重新設(shè)置權(quán)限
docker-entrypoint.sh: line 46: cannot create temp file for here-document: Permission denied
// 對遷移的docker 文件添加權(quán)限
chmod -R 1777