【发布时间】:2021-09-17 06:09:53
【问题描述】:
我正在尝试使用需要使用 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 system prune,这样我可以释放一些空间,但是这样做之后错误仍然存在,并且空闲数据块仍然是 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 pull ...? -
它工作正常。我已经尝试过使用我正在使用的 docker 镜像和不同的镜像,并且拉取完成了。
-
很奇怪。我预计那会失败。我更多地查看了您上面的 docker 信息,并注意到两件事:(1)您的 docker 存储驱动程序(devicemapper)已被弃用,(2)您的 Amazon Linux AMI 也已被弃用。如果您使用Amazon Linux 2 AMI,您的 new docker 将使用 overlay2 存储驱动程序,这是 docker 的首选存储驱动程序。我同意,您不需要升级。但这可能是最容易尝试的方法,除非您与此实例相关联。
-
您是否正在向 AWS Batch 提交作业?或者只是在单个强大的 EC2 实例(即本地)上运行您的工作流程?
-
显然,是的,它已被弃用。升级后一切正常:)(我正在使用 AWS Batch)。非常感谢!
标签: amazon-web-services docker nextflow