我正在尝试使用大型docker镜像(图像在dockerhub here上大约18GB)作为AWS批处理的作业定义。关于空间不足,我收到以下错误:
CannotPullContainerError: write /var/lib/docker/tmp/GetImageBlob#######: no space left on device
定义作业的Cloudformation JSON部分在这里
"JobDef3": {
"Type": "AWS::Batch::JobDefinition",
"Properties": {
"Type": "container",
"ContainerProperties": {
"Image": {
"Fn::Join": [
"",
[
"cornhundred/",
"dockerized-cellranger-nick:latest"
]
]
},
"Vcpus": 1,
"Command": ["some command"],
"Memory": 3000,
},
"RetryStrategy": {
"Attempts": 1
}
}
},
如何让AWS增加可用空间,以便我可以运行此图像?
答案 0 :(得分:2)
我能够通过将大文件(~15GB参考基因组文件)移出docker镜像并运行容器后下载它来运行docker容器。我还需要制作一个自定义的亚马逊机器映像(AMI,请参阅AWS Batch Genomics作为示例)并附加一个卷来处理大型参考基因组文件,因为默认容器不够大。
答案 1 :(得分:0)
我有一个类似的问题。清理未使用的docker映像和卷对我不起作用(即docker container prune
或docker system prune
我看到另一页说重启docker为该用户修复了该错误,但是执行service docker restart
时出现此错误: /etc/init.docker:第35行:ulimit:打开文件:无法修改限制:不允许操作
要尝试解决该问题,我看到一些站点提到要更新某些配置文件中的ulimit值,但是当我尝试使用更新后的参数保存文件时,出现了写入错误(文件系统已满?)
这时,我意识到(作为您显示的初始错误)我需要清理和删除文件。
我在根文件夹中做了一个du -h
,发现/var/lib/docker/tmp/
文件夹(这是我遇到的错误消息的一部分,是您在上面发布的错误消息)比其他文件夹占用了更多的磁盘空间。
所以我在那里删除了较旧的文件,并且不再收到该错误消息。