AWS CannotPullContainerError设备Docker上没有剩余空间

时间:2018-02-14 16:59:08

标签: amazon-web-services batch-file docker

我正在尝试使用大型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增加可用空间,以便我可以运行此图像?

2 个答案:

答案 0 :(得分:2)

我能够通过将大文件(~15GB参考基因组文件)移出docker镜像并运行容器后下载它来运行docker容器。我还需要制作一个自定义的亚马逊机器映像(AMI,请参阅AWS Batch Genomics作为示例)并附加一个卷来处理大型参考基因组文件,因为默认容器不够大。

答案 1 :(得分:0)

我有一个类似的问题。清理未使用的docker映像和卷对我不起作用(即docker container prunedocker system prune

我看到另一页说重启docker为该用户修复了该错误,但是执行service docker restart时出现此错误: /etc/init.docker:第35行:ulimit:打开文件:无法修改限制:不允许操作

要尝试解决该问题,我看到一些站点提到要更新某些配置文件中的ulimit值,但是当我尝试使用更新后的参数保存文件时,出现了写入错误(文件系统已满?)

这时,我意识到(作为您显示的初始错误)我需要清理和删除文件。

我在根文件夹中做了一个du -h,发现/var/lib/docker/tmp/文件夹(这是我遇到的错误消息的一部分,是您在上面发布的错误消息)比其他文件夹占用了更多的磁盘空间。

所以我在那里删除了较旧的文件,并且不再收到该错误消息。