很多时候,构建Dockerfile时出现此错误:
devmapper:精简池有157168个空闲数据块,小于最低要求的163840个空闲数据块。在精简池中创建更多可用空间或使用dm.min_free_space选项更改行为
我的磁盘完全没有250Go,当我执行docker版本时,我可以在存储部分看到:
Storage Driver: devicemapper
Pool Name: docker-253:0-19468577-pool
Pool Blocksize: 65.54kB
Base Device Size: 21.47GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 97.03GB
Data Space Total: 107.4GB
Data Space Available: 10.35GB
Metadata Space Used: 83.67MB
Metadata Space Total: 2.147GB
Metadata Space Available: 2.064GB
Thin Pool Minimum Free Space: 10.74GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.135-RHEL7 (2016-11-16)
我在停止泊坞服务后试了一下: 我试过了:
dockerd --storage-opt dm.thinpooldev dm.min_free_space=3%
dockerd --storage-opt dm.thinp_autoextend_percent
但那些命令没有成功。
如何增加数据空间总量(磁盘上的可用空间超过107.4GB的2倍)? 或者如何减少精简池最小可用空间:10.74GB?
答案 0 :(得分:0)
可能是因为码头工人用容器,图像或卷占据其指定的空间。 要查看实际Docker的用法,请运行:
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 135 27 41.33GB 33.77GB (81%)
Containers 34 32 509.4MB 15.21kB (0%)
Local Volumes 387 3 3.706GB 3.706GB (99%)
Prune有助于清理:
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all build cache
Are you sure you want to continue? [y/N] y
(有关较旧的Docker版本,请参阅Prune页面中的替代方案)。
请注意,默认情况下不会删除卷,以防止丢失数据。您必须自己指定,添加--volumes
或手动清除它们。
答案 1 :(得分:0)
如果您清理/修剪后仍然有问题,这就是您实际修改最小空间设置的方式。
创建/修改此文件: /etc/docker/daemon.json
{
"storage-opts": [
"dm.min_free_space=1%"
]
}