安装Docker卷 – 是可写入层使用?

我是新来的docker工人,我正在尝试在AWS上处理大量的数据。 现在,我想用我的父图像运行脚本的input大约是20G。

首先,我试图将数据复制到可写层上的图像(使用COPY),但是我得到了错误

Sending build context to Docker daemon 20.53 GB 

Error response from daemon: Error processing tar file(exit status 1): write /Input/dbsnp_138.b37.vcf: no space left on device

所以我认为20G太多了,只能存储在我的可写层上。

然后我看着在docker主机上挂载一个卷(使用VOLUME),但是不需要先将它写在可写入层上? 这不会也给我同样的错误?

所以Docker构build工作的方式是这样的,当你使用下面的东西

 docker build . 

它会将当前目录的内容发送到Docker守护进程。 因此,如果您发送的是20GB的上下文,则需要额外的20GB以上的可用空间。

在正在运行的映像上挂载卷时,它将实际挂载您的文件夹,因此不会使用额外的空间。 但是,如果从容器内删除目录,主机上的文件也将被删除。

所以挂载目录是一个可能的解决scheme。 另外,如果当前目录中有文件,您不希望发送到docker守护程序作为上下文,那么您应该使用.dockerignore指定要忽略的文件