排错过程
使用下面命令查看是不是硬盘被占满了:
df -h
再用下面命令查看哪个文件夹太大:
du -sh *
发现是 /var/lib/docker/overlay 占满了
网上查一下这个目录的作用,说是 overlay/overlay2表示Docker的存储驱动,可以参考一下这篇文章:Docker存储驱动之OverlayFS简介_overlayfs:/overlay-CSDN博客
也就是说容器/镜像等都会存在这个目录下,当量大的时候就会占满硬盘。
也可以参考官网(Use the OverlayFS storage driver | Docker Docs)
继续在网上搜资料,说可以看看是不是死掉容器过多的原因,使用 docker ps -a看了下,果然是。于是清理了一下无用的容器,硬盘就恢复正常了......
简单办法
多看了一下资料,发现可以使用 docker system prune来自动清理空间,参考下面:
- 该指令默认会清除所有如下资源:
- 已停止的容器(container)
- 未被任何容器所使用的卷(volume)
- 未被任何容器所关联的网络(network)
- 所有悬空镜像(image)。
- 该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
- 添加
-a 或 --all
参数后,可以一并清除所有未使用的镜像和悬空镜像。 - 可以添加
-f 或 --force
参数用以忽略相关告警确认信息。 - 指令结尾处会显示总计清理释放的空间大小。
另外,使用下面命令可以查看docker所占的硬盘大小,如:
➜ 20190417 docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 104 5 77.78GB 71.39GB (91%)
Containers 8 0 139MB 139MB (100%)
Local Volumes 30 1 3.276kB 3.183kB (97%)
Build Cache 0B 0B
同时推荐一本书: