如何修复Docker/Mac设备错误没有剩余空间?

Gre*_*reg 21 macos docker

我已经构建了一个非常大的图像(1G),其中有很多"基础设施"用于测试(Mongo,Kafka等)

尝试启动时,设备错误没有剩余空间.我怎样才能解决这个问题?

我已经清除了已停止的图像并删除了我并不绝对需要的任何图像.

小智 38

如果您在no space left on device使用Docker时遇到错误,您可以轻松解决此问题system prune.

我使用Docker for Mac 17.03.

使用docker UP和所有容器RUNNING,执行 docker system prune -a

这应该给出以下对话框:

WARNING! This will remove:
- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all images without at least one container associated to them Are you sure you want to continue? [y/N]
Run Code Online (Sandbox Code Playgroud)

然后按y删除大量容器,结束(在我的情况下): Total reclaimed space: 23.26 GB.

现在你甚至可以在没有重启docker的情况下重新开始工作!


Qde*_*eep 34

您可以在" 磁盘"选项卡中的Docker for Mac的"首选项"中调整虚拟磁盘映像大小.这将增加空间而不会丢失数据.

  • 这应该(现在)是公认的答案. (3认同)
  • 这取决于,在某些时候您的真实磁盘将已满,不再可以选择增加虚拟磁盘:-) (3认同)

lvt*_*llo 8

检查您的docker目录以找到您的问题(在MAC上这将是不同的,但相同的方法可能会有所帮助)

du -hs /var/lib/docker
Run Code Online (Sandbox Code Playgroud)

通过在以下子文件夹上执行相同的命令,您可以查看哪个文件夹占用了大量磁盘空间/var/lib/docker:

  • 对于/var/lib/docker/volumes:您必须删除" 孤立 "卷.您还可以使用docker volume ls -qf dangling=true检查卷.要删除孤立卷:docker volume rm $(docker volume ls -qf dangling=true)

  • 因为/var/lib/docker/containers您必须检查是否有很多已停止(或正在运行)的容器,其中包含docker ps=正在运行的容器和docker ps -a=所有容器(运行和停止).删除已停止的容器:docker rm -v $(docker ps -aq).该-v标志将自动删除容器的卷

  • 对于/var/lib/docker/images您可以通过删除所有未使用的图像docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

还要检查GitHub以找到一些非常有用的脚本,这些脚本会删除未使用的图像/容器/卷.

  • $ du -hs /var/lib/docker du: /var/lib/docker: 没有这样的文件或目录 (2认同)

Edw*_*uez 5

尝试增加磁盘空间。这对我有用。Docker -> 首选项 -> 磁盘 -> 磁盘映像大小(增加它) -> 应用

  • 我相信这应该是公认的答案,之前只是“系统修剪”一切。 (2认同)