事情是这样的,前两天客户的服务器忽然断电了,致使用docker部署的服务也挂了。昨天去现场,重启了docker,同时准备更新一下服务。结果发现有一台节点硬盘满了…docker
仍是以为有些奇怪的,毕竟docker的安装盘有800多个G的空间,以前也只用了100左右,以为有点奇怪,就开始了排错。服务器
自己机器只有咱们一家在用,因此不存在被占用的状况。因而使用下面命令查看是否是硬盘真被占满了:网络
df -h
结果然的是占满了😂ui
再用下面命令查看哪一个文件夹太大:.net
du -sh *
发现是 /var/lib/docker/overlay 占满了code
网上查一下这个目录的做用,说是 overlay/overlay2表示Docker的存储驱动,能够参考一下这篇文章:https://blog.csdn.net/styshoo/article/details/60715942blog
也就是说容器/镜像等都会存在这个目录下,当量大的时候就会占满硬盘。资源
也能够参考官网(https://docs.docker.com/storage/storagedriver/overlayfs-driver/)部署
继续在网上搜资料,说能够看看是否是死掉容器过多的缘由,使用 docker ps -a看了下,果真是。因而清理了一下无用的容器,硬盘就恢复正常了……get
多看了一下资料,发现可使用 docker system prune来自动清理空间,参考下面:
-a 或 --all
参数后,能够一并清除全部未使用的镜像和悬空镜像。-f 或 --force
参数用以忽略相关告警确认信息。(https://yq.aliyun.com/articles/272173 )
另外,使用下面命令能够查看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