docker overlay2目錄遷移
阿新 • • 發佈:2022-04-14
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