如何修复Docker中磁盘空间用尽错误?

Pri*_*jee 3 docker docker-machine

当我尝试构建docker映像时,我遇到了磁盘空间错误,在调查后发现以下内容:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        4G   3.8G     0 100% /
Run Code Online (Sandbox Code Playgroud)

如何解决空间不足错误?

Nic*_*cer 15

docker system prune
Run Code Online (Sandbox Code Playgroud)

https://docs.docker.com/engine/reference/commandline/system_prune/

这将清除所有未使用的映像,容器,网络,卷。通常,我们在创建新映像时会尝试清理旧映像,但是您也可以每天在Docker服务器上将其作为计划任务运行。

  • 您还需要传递--volumes标志来修剪卷。如果没有此功能,将仅修剪“未使用的容器,网络,图像(悬挂和未引用)”。 (3认同)
  • 我觉得这只是一个临时的解决办法。我们有超过 14Gb 的可用磁盘空间,但 Docker 仍然说没有剩余空间。我们称之为“docker system prune”,它确实有效,但只持续了一段时间。更不用说数据库也被删除了,但那是我们的错(请务必定期备份!) (2认同)

Abh*_*ain 11

使用命令 - docker system prune -a 这将清除图像、网络和卷的总可回收大小......这将删除与任何正在运行的容器无关的所有与图像相关的可回收空间......

docker system df命令查看可回收内存

如果有一些可回收的内存,那么如果上面的命令在第一次运行时不起作用,然后运行相同的命令两次然后它应该被清理......我几乎每天都遇到这种行为......计划报告此错误已提交给 Docker 社区,但在此之前希望使用新版本重现此错误,以查看是否已使用最新版本修复此错误....

  • 使用“-a”时要非常小心。这将擦除系统上没有关联容器的每个映像。通常只需“docker system prune”就足够了。 (4认同)

kau*_*hik 9

如果您使用的是 Linux,那么 docker 很可能会填满该目录/var/lib/docker/containers,因为它正在将容器日志写入<CONTAINER_ID>-json.log该目录下的文件。您可以使用该命令cat /dev/null > <CONTAINER_ID>-json.log清除该文件,也可以设置可编辑的最大日志文件大小/etc/sysconfig/docker更多信息可以在这个RedHat 文档中找到。就我而言,我创建了一个 crontab 来每天午夜清除文件的内容。希望这可以帮助!

注意:

  1. 您可以使用以下命令 找到具有ID 的docker 容器sudo docker ps --no-trunc
  2. 您可以使用命令检查文件的大小 du -sh $(docker inspect --format='{{.LogPath}}' CONTAINER_ID_FOUND_IN_LAST_STEP)


Nic*_*ico 5

打开 docker settings -> Resources -> Advanced 并在磁盘映像大小下增加它可以使用的硬盘空间量。

  • 在 Linux 上有什么办法可以做到这一点吗? (8认同)