如何增加Docker使用的空间(Data Space Total)?该值不到磁盘大小的一半

You*_*iga 10 docker

很多时候,我在构建 Dockerfile 时遇到这个错误:

devmapper:Thin Pool 有 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)
Run Code Online (Sandbox Code Playgroud)

我在停止 docker 服务后尝试过:我尝试过:

dockerd --storage-opt dm.thinpooldev dm.min_free_space=3%
dockerd --storage-opt  dm.thinp_autoextend_percent
Run Code Online (Sandbox Code Playgroud)

但是这些命令没有成功。

如何增加Data Space Total(磁盘可用空间是107.4GB的2倍以上)?或者如何减少精简池最小可用空间:10.74GB?

xma*_*mar -2

免责声明:此答案并未解决发帖者的具体问题。但是,对于收到相同错误消息的人来说,它可能会有所帮助或减轻问题。

该答案指定了通常释放空间的方式,而不是配置要使用的空间量。

可能是因为 docker 用容器、图像或卷占用了分配的空间。要查看 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%)
Run Code Online (Sandbox Code Playgroud)

修剪有助于清理:

$ 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
Run Code Online (Sandbox Code Playgroud)

(请参阅 Prune 页面中旧版 Docker 版本的替代方案)。

请注意,默认情况下不会删除卷,以防止数据丢失。您必须自己指定它,--volumes手动添加或清理它们。