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

时间:2016-06-05 19:25:00

标签: macos docker

我已经建立了一个非常大的形象(1G),它有很多基础设施和#34;用于测试(Mongo,Kafka等)

尝试启动时,设备错误没有剩余空间。我该如何解决这个问题?

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

7 个答案:

答案 0 :(得分:26)

如果Docker出现no space left on device错误,您可以使用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]

然后按y删除大量容器,用Total reclaimed space: 23.26 GB.

结束(在我的情况下)

现在你可以在不重启docker的情况下重新开始工作!

答案 1 :(得分:17)

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

答案 2 :(得分:6)

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

du -hs /var/lib/docker

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

  • 对于/var/lib/docker/volumes:您必须删除“orphaned”卷。 您也可以使用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以找到一些非常有用的脚本,删除未使用的图像/容器/卷。

答案 3 :(得分:3)

您可以更新适用于vm的硬盘驱动器的大小 10^18

答案 4 :(得分:1)

您可以单击顶部的Docker图标,然后单击preferences。转到reset标签,然后单击remove all data

答案 5 :(得分:1)

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

答案 6 :(得分:0)

您可以随时删除并重新创建boot2docker vm,以确保只重新构建/导入所需的图像/容器。如果您不断遇到空间问题,可能需要为boot2docker vm提供更多空间,请参阅Docker increase disk space