docker筆記11--docker build 報錯 devmapper: Thin Pool空間不夠解決方法
- 介紹
- 案例
- 注意事項
- 說明
介紹
最近用docker建構鏡像的時候,在中途出現 failed to create rwlayer: devmapper: Thin Poo … less than minimum required 報錯。查閱資料發現是centos 上 docker啟動的時候預設使用了devicemapper存儲驅動,該驅動将docker目錄挂載在 lvm 的分區上,該分區在使用過程中有一系列限制。随後将其調整為經典的 overlay2模式後恢複正常。
案例
docker build 報錯
failed to create rwlayer: devmapper: Thin Pool has 158998 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in
docker info 資訊
# docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.6.3-docker)
scan: Docker Scan (Docker Inc., v0.8.0)
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 27
Server Version: 20.10.9
Storage Driver: devicemapper
Pool Name: docker-253:16-13893683-pool
Pool Blocksize: 65.54kB
Base Device Size: 10.74GB
Backing Filesystem: xfs
Udev Sync Supported: true
Data file: /dev/loop0
Metadata file: /dev/loop1
Data loop file: /data2/docker/devicemapper/devicemapper/data
Metadata loop file: /data2/docker/devicemapper/devicemapper/metadata
Data Space Used: 94.17GB
Data Space Total: 107.4GB
Data Space Available: 13.21GB
Metadata Space Used: 179.4MB
Metadata Space Total: 2.147GB
Metadata Space Available: 1.968GB
Thin Pool Minimum Free Space: 10.74GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.170-RHEL7 (2020-03-24)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 5b46e404f6b9f661a205e28d59c982d3634148f8
runc version: v1.0.2-0-g52b36a2
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1160.42.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.375GiB
Name: cnshc-srecicd-p01001
ID: QXTX:FUSX:QWHJ:7E4H:MPOY:KBDI:DUD7:4PYO:SIDN:ZH73:C2GX:OXDO
Docker Root Dir: /data2/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release.
WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
Use `--storage-opt dm.thinpooldev`
由此可以發現, 目前可用 65.54158998/1024/1024=10420728.920000002=10.42GB小于 16384065.54/1024/1024=10738073.600000001=10.74GB, 無法滿足docker 容器運作環境,是以才觸發該問題。
其次,有 devicemapper storage-driver 被丢棄的提示,那麼很明顯可以不使用 devicemapper 的方式。
解決方法:
https://vinayakpandey-7997.medium.com/resolve-thin-pool-free-data-blocks-less-than-minimum-required-error-ffd9af38ba9d 修改docker 啟動配置中的 Storage Driver 配置為overlay2
docker修改存儲驅動為overlay2_qq_38286374的部落格-CSDN部落格_docker 修改overlay2
vim /etc/docker/daemon.json
{
"storage-driver": "overlay2"
}