背景
在集群监控系统里看到/var/lib目录占用已经达到87%,马上就会告警,所以用du命令检查了磁盘使用情况,发现只要是docker(Docker version 19.03.13
)目录占用过多。
操作过程
查看使用状况
sudo du -sh /var/lib/docker/
#返回结果
3.9G /var/lib/docker/
sudo docker system df
#返回结果
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 19 1 3.551GB 3.525GB (99%)
Containers 1 1 0B 0B
Local Volumes 4 0 2.406MB 2.406MB (100%)
Build Cache 0 0 0B 0B
清理磁盘删除关闭的容器
sudo docker system prune -a
#执行结果
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: 3.525GB
注意
docker system prune -a
如果不需要将别的image文件删除,可以不用加-a
。注意,如果-a
参数,那么会将没有在运行的容器以及其image都删除!!
查看别的空间剩余
根据自己磁盘占用选取!
选取/usr
存放docker文件
迁移
sudo mkdir -p /usr/docker/lib
rsync -avz /var/lib/docker /usr/docker/lib
配置docker 驱动
先查看devicemapper.conf
是否存在,如果不存在就新建。
sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo vim /etc/systemd/system/docker.service.d/devicemapper.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/usr/docker/lib/docker
重新加载docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
检查根目录是否修改成功
sudo docker info
启动成功后,再确认之前的镜像还在
docker images
确定容器没问题后删除/var/lib/docker/目录中的文件。