[英]No space left on device due to docker/cron
我在Google云上有一台基本服务器,该服务器每30分钟通过cron运行一次docker容器。 我注意到docker命令停止工作,并且出现错误消息
docker: Error response from daemon: no space left on device.
然后我注意到即使我尝试通过输入cd path/
并点击tab
来自动完成bash时也遇到此错误。 我发现存储可能出了点问题,所以尝试了df -h
并显示了此信息:
Filesystem Size Used Avail Use% Mounted on
udev 860M 0 860M 0% /dev
tmpfs 175M 19M 157M 11% /run
/dev/sda1 9.7G 9.7G 0 100% /
tmpfs 871M 0 871M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 871M 0 871M 0% /sys/fs/cgroup
tmpfs 175M 0 175M 0% /run/user/1001
如您所见,由于某些原因,/ dev / sda1已100%充满。 为什么会发生这种情况,我该如何解决?
我注意到有数千个退出的Docker容器,因此我使用以下命令删除了它:
docker rm -v $(docker ps -a -q -f status=exited)
现在存储使用率为61%,仍然太高。
在运行不需要保持停止状态的容器时,最好使用docker run --rm ...
自动清理停止的容器。
如果容器生成了在docker volume ls
可见的卷,则在不再需要数据后,您可能希望清除这些卷。 在运行--rm
标志的情况下,匿名卷(显示为长的唯一ID)将被自动删除。
Docker还提供了以下命令:
docker system prune
您可以自动清理图像,容器,网络甚至卷。 请注意,在运行命令之前,尤其是在自动化之前,您应该花些时间了解此命令的功能。 在编写此命令脚本时,可以使用-f
标志绕过提示。
在运行修剪之前,您可以检查以下内容:
docker system df
以查看每个组件正在使用多少磁盘,并且每个组件都有自己的prune命令,例如docker container prune
和docker volume prune
,只需要清理一个区域。
有关prune命令的更多详细信息,请参阅: https : //docs.docker.com/engine/reference/commandline/system_prune/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.