docker下overlay2占用空间过大,清理docker占用空间

当发现由于磁盘空间满导致Redis和数据库无法正常使用时,可以通过分析磁盘占用、执行`dockersystemprune`清理无用资源,然后迁移Docker的默认存储目录`/var/lib/docker`到其他空间更大的位置,并修改Docker配置文件以指向新的路径。在完成这些步骤后,重启Docker服务并确认配置生效。

最近开发时,发现空间满了,导致redis,数据库都无法正常使用,才想起来docker默认的存储路径是在root下面,不知道自己的路径在哪儿的可以


1.分析磁盘占用情况


使用指令:

docker info


自己看看这个目录下各个文件夹的存储情况

docker system df


2. docker system prune


该指令只要清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)

 


3.迁移 /var/lib/docker 目录


我们找到一个空间比较大的地方,创建一个目录,目录可以命名为:docker,然后在docker下创建一个目录lib,如下所示:

 


然后将/var/lib/docker/lib下的内容迁移到新目录下

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


4.修改docker的配置文件

cd /etc/systemd/system/docker.service.d/


查看 devicemapper.conf 是否存在,如果不存在,就新建
然后在devicemapper.conf 写入以下内容:

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


我的就没有目录:docker.service.d,所以我自己创建了一个


注意:后面多了一个docker,这是因为我们同步完成之后会发现lib下多了一个docker目录,然后同步的内容全部在/lib/docker中 


5.停止docker

systemctl stop docker


6.重新加载 docker


依次执行以下命令:

systemctl daemon-reload

systemctl restart docker

systemctl enable docker


为了确保一切顺利,我们先确定修改的配置文件是否生效:

docker info


然后再看看原来的镜像是否还在

docker images


如果以上都没问题的话就开始暴力删除我们原本的存储目录 /var/lib/docker
直接rm -rf /var/lib/docker/即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值