使用overlay2构建大型映像时Docker只读文件系统错误

时间:2019-12-18 15:11:53

标签: docker build filesystems conda

我正在尝试在大型基础映像(具有cuda支持的nvidia)之上构建具有大量依赖项的大型docker映像。在构建过程中,我使用Dockerfile中的以下行从env.yml创建了一个conda环境:

RUN /miniconda/bin/conda env create -n myenv -f /mycode/env.yml\
 && /miniconda/bin/conda clean -ya

当conda清理其缓存时,我总是会遇到以下错误:

ERROR: Service 'app' failed to build: Error processing tar file(exit status 1): mkdir /miniconda/pkgs/google-cloud-sdk-273.0.0-py37_0/share/google-cloud-sdk-273.0.0-0/platform/gsutil/third_party/rsa/doc: read-only file system

该错误发生在不同的软件包中,它们并不总是相同的,因此我想这与特定的软件包无关。发生此错误后,我的ext2文件系统锁定为只读模式,我必须重新引导计算机才能再次使用它(这在开发服务器上一点都不酷)。

我认为(但不确定),该错误与最大图像大小的限制有关,可能为10GB。图像大小很有可能超过10GB,但与大多数在线其他人一样,错误不是out of space。我的机器上有足够的空间。我的docker安装使用overlay2作为场景,因为docker info的输出包含:

Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true

最后,在某些时候,我还认为磁盘的文件系统已损坏,但事实并非如此。我使用了fsck以及智能测试,一切都很好。所以我的问题是,我该如何解决这个问题?如果确实与图像大小限制有关,我如何增加它?谢谢

编辑1:我在云服务器上尝试过,但效果很好。云服务器运行docker v18.09.7,而我的本地服务器运行v19.03.5。两者都使用overlay2

0 个答案:

没有答案