Docker overlay文件系统占用磁盘空间过大的解决方法

overlay文件系统有什么用

参考文档

overlay用于存储Docker容器的文件系统,它是一种联合文件系统,它能够将多个文件系统叠加在一起,形成一个只读的基础文件系统和一个可写的上层文件系统。在Docker中,每个容器都有自己的只读基础文件系统和可写的上层文件系统。

当Docker启动容器时,会在overlay2目录下创建一个新的目录,该目录包含了容器的只读基础文件系统和一个可写的上层文件系统。在容器运行期间,所有对文件系统的修改都会被记录在上层文件系统中。当容器被停止时,该目录和其内容也会被删除。

使用Overlay目录可以有效地节省磁盘空间,因为多个容器可以共享同一个基础文件系统。此外,Overlay目录还可以提高容器的启动速度,因为只需要加载基础文件系统一次,而不是每次启动容器都要重新加载一遍。

需要注意的是,Overlay目录只适用于Linux操作系统,因为它依赖于Linux内核的Overlay文件系统。在Windows和macOS上,Docker使用不同的存储驱动来管理容器的文件系统。

解决方法
1. 比较温柔的办法
# 删除未使用的资源(已停止的容器、所有的悬空镜像(没有标签,也没有被任何容器引用)、未被任何容器使用的卷、未被任何容器关联的网络等)
# -a | --all 选项可同时删除未使用的镜像
# -f | --force 选项可忽略相关警告确认信息
# 命令返回统计出的已清理释放的空间大小
docker system prune


# 可选操作,仅删除未使用的镜像
docker image prune

# 其实重启容器,也能释放空间,但是服务会有短暂的中断

# 查看docker占用
docker system df
2. 暴力方法(请慎重)
rm -rf /var/lib/docker/overlay2/*

评论

评论正在提交中...请稍后
评论提交成功...