我正在运行 Mac 原生 Docker(没有 virtualbox/docker-machine)。
我有一个巨大的图像,里面有很多基础设施(Postgres 等)。 我已经运行了清理脚本来清除很多杂乱无章的东西——未使用的图像等等。
当我运行我的图像时,我收到如下错误:
could not create directory "/var/lib/postgresql/data/pg_xlog": No space left on device
在我的主机 Mac 上/var 有 60% 的可用空间,通常我的磁盘有大量可用存储空间。
这是我需要增加一些 Docker 配置以提供更多资源吗?
docker 内 mount
的相关行:
none on / type aufs (rw,relatime,si=5b19fc7476f7db86,dio,dirperm1)
/dev/vda1 on /data type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /etc/resolv.conf type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /etc/hostname type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /etc/hosts type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /var/lib/postgresql/data type ext4 (rw,relatime,data=ordered)
这里是df
:
[11:14]
Filesystem 1K-blocks Used Available Use% Mounted on
none 202054928 4333016 187269304 3% /
tmpfs 1022788 0 1022788 0% /dev
tmpfs 1022788 0 1022788 0% /sys/fs/cgroup
/dev/vda1 202054928 4333016 187269304 3% /data
shm 65536 4 65532 1% /dev/shm
tmpfs 204560 284 204276 1% /run/docker.sock
最佳答案
我没有找到很多选项,github中的主要问题是https://github.com/docker/for-mac/issues/371
建议的一些选项有:
- 如果您可以删除所有图像/容器,则可以按照以下说明操作:
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)
docker volume rm $(docker volume ls |awk '{print $2}')
rm -rf ~/Library/Containers/com.docker.docker/Data/*
- 您可以尝试修剪所有未使用的图像/容器,但这已被证明不是很有效:
docker 系统修剪
- 使用更大的模板图像,使用自制软件安装
qemu
并移动图像,请参阅此特定注释:https://github.com/docker/for-mac/issues/371#issuecomment-242047368但您需要至少留出 2 倍的空间才能在不丢失容器/图像的情况下执行此操作。
另请参阅:How do you get around the size limitation of Docker.qcow2 in the Docker for Mac? 和https://forums.docker.com/t/no-space-left-on-device-error/10894/26
关于docker - 如何修复 Docker 中的 'No space left on device' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41227546/