如何修复 Docker 中磁盘空间不足的错误?

问题描述 投票:0回答:7

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

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

如何修复此空间不足错误?

docker docker-machine
7个回答
114
投票
docker system prune [-a]

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

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

其他答案地址列出系统内存使用情况并增加 Docker Desktop 中的 Docker 磁盘空间量:

docker system df
命令可用于查看可回收内存--Abishek_Jain

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


29
投票

使用命令 -

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

运行

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

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


17
投票

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


8
投票

如果您使用的是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)

3
投票

由于我找不到答案,所以将其留在这里。

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

完全卸载 Docker。

然后使用此链接

重新安装它

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

另外,如果您使用 MacBook,请查看

~/Library/Containers/docker*

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


3
投票

不确定这是否仍然相关,但如果

docker system prune
不起作用,并且如果您不想去
docker system prune -a
,您应该使用其中之一来选择和删除图像

  • docker image prune --filter

  • 从 Docker for Dekstop 中挑选并删除它们

2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.