docker支持多种graphDriver,包括vfs、devicemapper、overlay、overlay2、aufs等,其中最常用的为aufs。然而,随着Linux内核3.18将overlay纳入其中,overlay的地位日益重要。为了清理无用文件,使用命令"docker system prune -a"进行清理。清理完毕后,mysql服务再次启动成功。
docker overlay2占用过大, 磁盘已满导致mysql启动不了
今天发现数据库服务器连接不上,重启也无法解决问题,查询到错误信息为"The server quit without updating PID file"。经过排查发现是磁盘空间已满导致。
为了确认磁盘使用情况,执行命令"df -lh"查看磁盘使用详情。结果显示,docker目录下的overlay占用空间过大。
使用命令"du -h -d 2|grep [GT] |sort -nr"对磁盘占用空间进行查询,深度为2。结果显示,docker/overlay2占用的空间最大。
了解得知,overlay是docker的文件系统,每次创建镜像和容器都会在这里生成相应的文件,因此存在大量废弃或未使用的镜像。
OverlayFS是内核提供的文件系统,overlay与overlay2是docker的存储驱动。docker支持多种graphDriver,包括vfs、devicemapper、overlay、overlay2、aufs等,其中最常用的为aufs。然而,随着Linux内核3.18将overlay纳入其中,overlay的地位日益重要。
为了清理无用文件,使用命令"docker system prune -a"进行清理。
清理完毕后,mysql服务再次启动成功。2024-11-01