遷移Docker的容器和鏡像目錄解決overlay2占用問題


1.查看存儲情況

1.1/var/lib/docker/是Docker的根目錄,容器和鏡像都存儲在這個位置,解決占用空間的問題必須遷移該目錄,這里先查看該目錄使用情況

[root@iZuf68uxjd82vso8nsfwc9Z docker]# du -hs /var/lib/docker/
12G     /var/lib/docker/

1.2使用Docker命令docker system df查看Docker磁盤使用情況,使用docker system prune清理關閉的容器、無用是數據卷和網絡,以及無tag的鏡像

[root@iZuf68uxjd82vso8nsfwc9Z docker]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              17                  4                   5.567GB             4.054GB (72%)
Containers          4                   4                   6.676GB             0B (0%)
Local Volumes       4                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B
[root@iZuf68uxjd82vso8nsfwc9Z docker]# docker system prune
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache

Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

docker system prune -a 命令更徹底,會刪除沒有容器使用的鏡像

2.遷移/var/lib/docker/目錄

2.1先停止docker服務

systemctl stop docker

2.2先創建好將要遷移的目錄

mkdir -p /data/docker/lib

2.3將var/lib/docker同步到/data/docker/lib

rsync -avz /var/lib/docker /data/docker/lib

2.4配置/etc/systemd/system/docker.service.d/devicemapper.conf。查看devicemapper.conf是否存在,如果不存在請創建

mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/devicemapper.conf

2.5寫入映射目錄

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/data/docker/lib

2.6重新加載Docker

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

2.7檢查目前Docker根目錄,確定當前目錄已遷移,再查看容器鏡像是否存在docker images

[root@iZuf68uxjd82vso8nsfwc9Z docker]# docker info
...
 Docker Root Dir: /data/docker/lib
... 

2.8確認無誤后刪除 /var/lib/docker

rm -rf /var/lib/docker


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM