我们试图以过去工作的方式运行一个docker,但现在我们得到了“Thin Pool缺少空间”错误:
docker run --privileged -d --net=host --name=fat-redis -v /fat/deploy:/fat/deploy -v /fat/fat-redis/var/log:/var/log -v /home:/home fat-local.indy.xiolab.myserv.com/fat-redis:latest /fat/deploy/docker/fat-redis/fat_start_docker_inner.sh
docker: Error response from daemon: devmapper: Thin Pool has 486 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior.
See 'docker run --help'.
这个错误是什么意思? 我们尝试了'docker rmi'和来自here的建议,但都是徒劳的。
有什么想法吗?
谢谢
答案 0 :(得分:6)
在旧版本的docker上默认使用环回设备上的数据/元数据运行。这有问题,较新的版本更改了此默认值。如果docker以这种方式配置,那么正常更新(例如通过rpm / apt)不会更改配置,这就是需要完全重新安装才能修复的原因。
这是一篇文章,说明如何配置旧版本以不使用环回设备: http://www.projectatomic.io/blog/2015/06/notes-on-fedora-centos-and-docker-storage-drivers/
答案 1 :(得分:3)
您不必重新安装Docker。相反,您可以清除/var/lib/docker directory
下的所有容器,图像,卷等。
可以再次从Docker存储库中提取这些图像。 (这假设您只使用此Docker主机来构建Docker镜像。)
答案 2 :(得分:2)
我的问题与环回设备问题无关,但是产生了相同的错误情况。 "码头图片-a"显示了一些名称=无标签=无图像占用空间。这些图像不是"悬挂&#34 ;;它们被当前活动图像引用,无法删除。
我的解决方案是运行" docker save"并将活动图像写入tar文件,删除活动图像(删除所有子图像),然后运行" docker load -i"从tar文件中创建一个新的图像。没有更多与精简池空间相关的错误。
重新安装docker会纠正它,只是因为重新安装docker会清除所有图像,但它会再次开始构建,然后我将来会重新遇到这个问题。
答案 3 :(得分:1)
使用以下内容清除不必要的图像。
docker image prune -a --force --filter "until=240h"
有关更多详细信息,请参阅文档:https://docs.docker.com/engine/reference/commandline/image_prune/
答案 4 :(得分:0)
原来重新安装docker就可以了。 使用以下链接:https://docs.docker.com/engine/installation/linux/centos/
干杯
答案 5 :(得分:0)
TL; DR
有时您只需要更多空间。使用truncate命令增加数据文件。
说明: 重新安装或清除所有映像的原因是,您拥有一个“虚拟磁盘”,Docker将其用作构建映像的空间,但是在映像运行后不会将其清除。如果您正在运行多个不同的映像,则可以填满暂存盘,并且“较新”的映像没有足够的空间可运行。 docker system prune 命令将无法使用,因为该空间已被合法占用。您需要增加暂存文件的大小。
确保磁盘上有额外的物理空间
df
弄清楚数据文件的大小
docker info | grep'数据空间'
查找数据文件的位置
docker info | grep“循环文件”
增加数据文件的大小(+ 50G或其他大小)
sudo truncate -s 150G / var / lib / docker / devicemapper / devicemapper / data
重新启动机器。 该指南讨论了一系列命令来“层叠”整个图层的大小,但是重新启动会自动执行这些命令
sudo重新启动
参考:
{所有抱怨回送驱动程序已过时的SO帖子} https://docs.docker.com/storage/storagedriver/device-mapper-driver/#use-operating-system-utilities