Machine: 默认机器中的设备上没有剩余空间

创建于 2015-08-30  ·  11评论  ·  资料来源: docker/machine

当我尝试在 OS X 上的default机器上启动 Postgres 容器时,出现以下错误:

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /var/lib/postgresql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
FATAL:  could not write to file "base/12141/12065": No space left on device
STATEMENT:  CREATE DATABASE postgres;

child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/data"
copying template1 to postgres ...

当我ssh使用docker-machine ssh default ssh进入机器并运行df -h ,我得到以下输出:

tmpfs                     1.8G    112.4M      1.7G   6% /
tmpfs                  1001.4M    184.0K   1001.2M   0% /dev/shm
/dev/sda1                18.2G     17.2G     31.9M 100% /mnt/sda1
cgroup                 1001.4M         0   1001.4M   0% /sys/fs/cgroup
none                    237.3G    225.5G     11.9G  95% /Users
/dev/sda1                18.2G     17.2G     31.9M 100% /mnt/sda1/var/lib/docker/aufs
none                     18.2G     17.2G     31.9M 100% /mnt/sda1/var/lib/docker/aufs/mnt/e0289dcde7fa0113481a65379aca4d1a2455d1724164f7cd0aedc5a0222c226d
none                     18.2G     17.2G     31.9M 100% /mnt/sda1/var/lib/docker/aufs/mnt/1ad325fa03f9fac1b0a7134c19775aa61a0b971c227420fdecb14d19f8d067b8

除了重新创建机器:获得更多空间或清理东西的最佳方法是什么?

最有用的评论

也许您的机器中仍然安装了一些卷。

我建议运行这个容器来清理整个事情:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanup-volumes

在这里了解更多信息和注意事项: https :

请注意,这将删除所有孤立卷数据。

所有11条评论

rm -ing 所有容器和rmi -ing 所有图像后, df -h结果如下所示:

Filesystem                Size      Used Available Use% Mounted on
tmpfs                     1.8G    112.4M      1.7G   6% /
tmpfs                  1001.4M         0   1001.4M   0% /dev/shm
/dev/sda1                18.2G     15.7G      1.5G  91% /mnt/sda1
cgroup                 1001.4M         0   1001.4M   0% /sys/fs/cgroup
none                    237.3G    226.0G     11.3G  95% /Users
/dev/sda1                18.2G     15.7G      1.5G  91% /mnt/sda1/var/lib/docker/aufs

一旦我再次为 Node.js 和 Postgres 提取图像,可用空间几乎又消失了......

也许您的机器中仍然安装了一些卷。

我建议运行这个容器来清理整个事情:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanup-volumes

在这里了解更多信息和注意事项: https :

请注意,这将删除所有孤立卷数据。

@Oliboy50谢谢,这成功了:+1:

filesystem                Size      Used Available Use% Mounted on
tmpfs                     1.8G    112.4M      1.7G   6% /
tmpfs                  1001.4M         0   1001.4M   0% /dev/shm
/dev/sda1                18.2G     77.3M     17.1G   0% /mnt/sda1
cgroup                 1001.4M         0   1001.4M   0% /sys/fs/cgroup
none                    237.3G    226.2G     11.1G  95% /Users
/dev/sda1                18.2G     77.3M     17.1G   0% /mnt/sda1/var/lib/docker/aufs

docker-cleanup-volumes 在我的 docker-machine 设置上不起作用(OSX 也是如此)

docker<strong i="6">@default</strong>:~/docker-cleanup-volumes$ docker run --rm -v /var/run/docker.sock
:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanu
p-volumes --dry-run

Delete unused volume directories from /var/lib/docker/volumes
In use 4423d5bdf1a2df1bd91083e0602f33271e30ff6b29cdb7297f94e95ce8e32c43
In use a4f95c3cd6a5b926b9dac6ff741ce35295771bc965c7f97dbedc6100838caa20

Directory /var/lib/docker/vfs/dir does not exist or is empty, skipping.

由于目录 /var/lib/docker/vfs/dir 不存在或为空,跳过。

@rodowi它对我

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro -v /var/lib/docker:/var/lib/docker martin/docker-cleanup-volumes

@kurenn跑的时候再给no space left on device :😢

Unable to find image 'martin/docker-cleanup-volumes:latest' locally
latest: Pulling from martin/docker-cleanup-volumes
e6c44a677827: Downloading [>                                                  ] 26.06 kB/2.492 MB
e665190e5bfd: Downloading [==================================================>] 5.371 MB/5.371 MB
3f134245a2ac: Downloading [==================================================>] 2.033 kB/2.033 kB
docker: open /mnt/sda1/var/lib/docker/tmp/GetImageBlob736093559: no space left on device.
See 'docker run --help'.

@jklemm查看这个 repo,它也对我https://github.com/chadoe/docker-cleanup-volumes

请告诉我进展如何,请!

对于那些(像我一样)在 Mac OS X 上使用 docker-cleanup-volumes 没有成功的人:您可以使用更多“硬核”方式来清理所有内容。
杀死正在运行的容器:
docker kill $(docker ps -qa)
删除它们:
docker rm -v $(docker ps -qa)
删除所有图像(我可以选择使用 -f 选项强制删除所有图像):
docker rmi -f $(docker images -q)
希望这可以帮助

@yaronius它对我

docker system prune -a -f --volumes.. 发布这个命令我可以工作了。

@BensamV你是对的

docker system prune -a --volumes现在是推荐的方式,如果你真的想清理一切

(与您不同,我更喜欢删除-f选项,因为它会导致“哎呀...我不想...哦废话😭”)

capture d ecran 2018-09-12 a 09 35 10

此页面是否有帮助?
0 / 5 - 0 等级