【问题标题】:How to fix the running out of disk space error in Docker?如何修复 Docker 中的磁盘空间不足错误?
【发布时间】:2018-07-09 05:46:57
【问题描述】:

当我尝试构建 docker 映像时,出现磁盘空间不足错误,经过调查后发现以下问题:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        4G   3.8G     0 100% /

如何解决此空间不足错误?

【问题讨论】:

  • 这里没有错误,只是df -h的输出。另外,当您说“内存”时,您可能指的是“磁盘空间”?
  • 是的。我没有发布错误。我遇到了内存不足的错误。

标签: docker docker-machine


【解决方案1】:
docker system prune

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

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

【讨论】:

  • 您还需要传递 --volumes 标志来修剪卷。如果没有这个,只有“未使用的容器、网络、图像(悬空和未引用)”将被修剪。
  • 我觉得这只是治标不治本。我们有超过 14Gb 的可用磁盘空间,而 Docker 仍然说没有剩余空间。我们称之为“docker system prune”并且它起作用了,但只是暂时的。更不用说数据库也被删除了,但那是我们的错(总是定期备份的人!)
【解决方案2】:

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

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

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

【讨论】:

  • 小心-a。这将擦除系统上没有与之关联的容器的每个图像。通常只需docker system prune 就足够了。
  • 我确实提到用户在使用 -a 时必须小心,因为它会删除所有容器未运行的图像......
  • 使用 -a 时要非常小心。这也会删除未使用的网络,您可能会失去网络连接。
【解决方案3】:

打开 docker 设置 -> 资源 -> 高级,并在磁盘映像大小下增加它可以使用的硬盘空间量。

【讨论】:

  • 在 Mac os Mojave 上的 docker 桌面版本 2.3.0.4 上非常适合我。
  • 有没有办法在 Linux 上做到这一点?
【解决方案4】:

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

注意:

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

【讨论】:

    【解决方案5】:

    没有什么对我有用。我在 Docker 设置中更改了磁盘映像的最大大小,然后它释放了巨大的大小。

    【讨论】:

    • 哇,我没有看到这个选项!想知道为什么我的 Windows 显示 60GB 可用磁盘空间,但 Docker 容器说“没有足够的磁盘空间”——我的限制是 50GB(全部用完了)——将它设置为 200 并且它工作!
    • 嗯,命令应该如上所述,问题是它对我不起作用..只能手动点击按钮
    【解决方案6】:

    由于找不到答案,因此将其留在这里。

    转到 Docker GUI -> 首选项 -> 重置 -> 卸载

    完全卸载 Docker。

    然后使用 this link 重新安装它

    我的 docker 在构建映像时使用了 20GB 的空间,在全新安装后,它最多使用 3-4GB。绝对有帮助!

    另外,如果您使用的是 macbook,请查看~/Library/Containers/docker*

    这个文件夹对我来说是 60 GB,占用了我 Mac 上的所有空间!尽管这可能与问题无关,但我认为将其留在这里对我来说至关重要。

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 2016-06-08
      • 2013-10-09
      • 2015-12-30
      • 1970-01-01
      相关资源
      最近更新 更多