Docker-Overlay2磁盘空间清理方法之一清理数据卷volumes


今天突然发现跑服务器的磁盘满了。

记录下进入服务查看到Docker-Overlay2磁盘空间的清理方法:清理Docker的数据卷volumes
Docker在长时间使用的情况下,经常需要删除旧的容器并创建新的容器,时间长了Docker 的数据卷 volumes 会产生了很多的僵尸文件,这些文件大都是未绑定容器的目录。

1.查看磁盘使用

df -h

发现是目录 /data/docker/overlay2 下占满了磁盘,看看里面是什么。

2.查看Docker数据卷及磁盘使用情况

查询Docker的磁盘使用情况:

docker system df
'''
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              2                   1                   20.48GB             9.64GB (47%)
Containers          1                   1                   10.46GB             0B (0%)
Local Volumes       20                  0                   135.35GB            135.35GB (100%)
Build Cache         0                   0                   0B                  0B
'''

上述信息可以看出:
Docker 镜像占用了 20.48GB 磁盘,
Docker 容器占用了 10.46GB 磁盘,
Docker 数据卷占用了 135.35GB 磁盘。

查询僵尸文件:
官方提供用于 查询僵尸文件的命令:

docker volume ls -qf dangling=true

在这里插入图片描述

3.Docker 删除无用数据卷

手动删除命令

# 删除所有dangling数据卷(即无用的Volume,僵尸文件)
docker volume rm $(docker volume ls -qf dangling=true)

# 删除所有dangling镜像(即无tag的镜像)
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

# 删除所有关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm

删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
注意,所有关闭的容器都会被删除,请核查是否存在关闭运行但是需要保留的容器

# 删除关闭的容器、无用的数据卷和网络
docker system prune
# 删除更彻底,可以将没有容器使用Docker镜像都删掉
docker system prune -a

重启Docker
使用上面几个方法的命令可以有效清理 Docker 运行所产生的无用文件,且无需重启 Docker 即可生效

如果遇到Docker 无法清理一些无用目录,重启 Docker 可以解决这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值