迁移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