1. 程式人生 > 其它 >docker overlay2目錄遷移

docker overlay2目錄遷移

docker overlay2目錄遷移

一、確定當前磁碟使用情況

du -hs /var/lib/docker/

若overlay2目錄使用率較高,並且沒有閒置容器和無用映象可清理,則需要進行擴容或者遷移

以下命令謹慎操作:

docker system prune         #命令可以用於清理磁碟,刪除關閉的容器、無用的資料卷和網路,以及dangling映象(即無tag的映象)

二、檢視當前docker磁碟使用情況

dockecr system df 

三、停止docker服務

systemctl stop docker

PS:此操作會導致所有容器暫時停止執行

四、建立遷移新目錄

通過執行df -h命令,找一個大的磁碟,在該磁碟建立一個新目錄(比如/home)

mkdir -p /home/docker/lib

五、遷移舊資料到新目錄下

rsync -avz /var/lib/docker /home/docker/lib/

六、配置docker啟動檔案

先檢視 devicemapper.conf 是否存在,如果不存在,則新建。

mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/devicemapper.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker

七、重新載入docker服務

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

八、檢查是否遷移成功

docker info
...
Docker Root Dir: /home/docker/lib/docker           #docker根目錄是否替換成新目錄
Debug Mode: false
...

九、確認映象是否存在

docker images

十、重新啟動容器

docker restart xxx             #通過docker ps -a檢視停止docker服務之前,哪些容器退出,並逐個重啟

docker ps                      #重啟完成之後,檢視容器是否都正常執行

十一、回滾操作

當docker服務啟動異常或者容器啟動異常,則進行回滾操作

①停止docker服務

systemctl stop docker 

②移除配置檔案

mv /etc/systemd/system/docker.service.d/devicemapper.conf /tmp

③重新載入docker服務

systemctl daemon-reload

④重新啟動docker服務

systemctl restart docker 

⑤設定開機自啟

systemctl enable docker

⑥重新拉起容器

docker restart xxx

⑦檢查所有容器是否正常拉起

docker ps 

⑧確認都沒有問題了,刪除新目錄

rm -rf /home/docker/lib/docker