Docker CannotCreateContainerError: Thin Pool has 0 free data blocks
Docker CannotCreateContainerError: Thin Pool has 0 free data blocks
我正在尝试 运行 使用需要使用 docker 的 AWS(EC2 实例)的 Nextflow 管道,但出现以下错误:
CannotCreateContainerError: Error response from daemon: devmapper: Thin Pool has 0 free data blocks which is less than minimum required 4449 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior
发现这个错误后,我的管道完全死机了。我在网上找到的这个问题最常见的答案是做一个 docker 系统 p运行e,所以我可以释放一些 space,但这样做之后错误仍然存在,并且空闲数据块仍为 0.
我的猜测是我无法访问数据块,但由于这是我第一次使用 Docker,我完全迷路了。
万一有趣,如果我运行 docker info:
Client:
Debug Mode: false
Server:
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 22
Server Version: 19.03.13-ce
Storage Driver: devicemapper
Pool Name: docker-docker--pool
Pool Blocksize: 524.3kB
Base Device Size: 536.9GB
Backing Filesystem: ext4
Udev Sync Supported: true
Data Space Used: 14.55GB
Data Space Total: 23.33GB
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.thinpooldev=/dev/mapper/docker-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true Data Space Available: 8.782GB
Metadata Space Used: 4.891MB
Metadata Space Total: 25.17MB
Metadata Space Available: 20.28MB
/*
Thin Pool Minimum Free Space: 2.333GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: json-file
Cgroup Driver: cgroupfs
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: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: c623d1b36f09f8ef6536a057bd658b3aa8632828
runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
init version: de40ad0 (expected: fec3683)
Security Options:
seccomp
Profile: default
Kernel Version: 4.14.225-121.362.amzn1.x86_64
Operating System: Amazon Linux AMI 2018.03
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 985.5MiB
Name: ip-172-31-33-79
ID: QBVF:B7D5:3KRH:3BYR:UU27:XEUW:RWLE:SLAW:F6AG:LKD2:FD3E:LHLQ
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
关于如何解决这个问题的任何线索?
看着你上面的 docker info
,我注意到两件事:
- 您的 Docker 存储驱动程序 (devicemapper) 已弃用,并且
- 您的 Amazon Linux AMI 也已弃用。
我认为如果您使用较新的 Amazon Linux 2 AMI,您的新 Docker 将使用 overlay2 存储驱动程序,这是 Docker 的首选存储驱动程序。
您不需要升级,但这可能是最容易尝试的方法,除非您受限于此实例。
我正在尝试 运行 使用需要使用 docker 的 AWS(EC2 实例)的 Nextflow 管道,但出现以下错误:
CannotCreateContainerError: Error response from daemon: devmapper: Thin Pool has 0 free data blocks which is less than minimum required 4449 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior
发现这个错误后,我的管道完全死机了。我在网上找到的这个问题最常见的答案是做一个 docker 系统 p运行e,所以我可以释放一些 space,但这样做之后错误仍然存在,并且空闲数据块仍为 0.
我的猜测是我无法访问数据块,但由于这是我第一次使用 Docker,我完全迷路了。
万一有趣,如果我运行 docker info:
Client:
Debug Mode: false
Server:
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 22
Server Version: 19.03.13-ce
Storage Driver: devicemapper
Pool Name: docker-docker--pool
Pool Blocksize: 524.3kB
Base Device Size: 536.9GB
Backing Filesystem: ext4
Udev Sync Supported: true
Data Space Used: 14.55GB
Data Space Total: 23.33GB
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.thinpooldev=/dev/mapper/docker-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true Data Space Available: 8.782GB
Metadata Space Used: 4.891MB
Metadata Space Total: 25.17MB
Metadata Space Available: 20.28MB
/*
Thin Pool Minimum Free Space: 2.333GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: json-file
Cgroup Driver: cgroupfs
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: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: c623d1b36f09f8ef6536a057bd658b3aa8632828
runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
init version: de40ad0 (expected: fec3683)
Security Options:
seccomp
Profile: default
Kernel Version: 4.14.225-121.362.amzn1.x86_64
Operating System: Amazon Linux AMI 2018.03
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 985.5MiB
Name: ip-172-31-33-79
ID: QBVF:B7D5:3KRH:3BYR:UU27:XEUW:RWLE:SLAW:F6AG:LKD2:FD3E:LHLQ
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
关于如何解决这个问题的任何线索?
看着你上面的 docker info
,我注意到两件事:
- 您的 Docker 存储驱动程序 (devicemapper) 已弃用,并且
- 您的 Amazon Linux AMI 也已弃用。
我认为如果您使用较新的 Amazon Linux 2 AMI,您的新 Docker 将使用 overlay2 存储驱动程序,这是 Docker 的首选存储驱动程序。 您不需要升级,但这可能是最容易尝试的方法,除非您受限于此实例。