Dockerfile生成错误,并写入到另一个文件夹

我做了这样的docker文件

FROM hyeshik/tailseeker:latest RUN rm /opt/tailseeker/conf/defaults.conf COPY /Users/Downloads/defaults.conf /opt/tailseeker/conf/ COPY /Users/Downloads/level2/* /opt/tailseeker/refdb/level2/ COPY /Users/Downloads/level3/* /opt/tailseeker/refdb/level3/ 

我/用户/下载/文件夹也有其他文件夹名为input

当我跑了

 docker build -f /Users/Downloads/Dockerfile /Users/Downloads/ 

我得到一个错误说

 Sending build context to Docker daemon 126.8 GB Error response from daemon: Error processing tar file(exit status 1): write /input/Logs/Log.00.xml: no space left on device 

这里有一个奇怪的事情是为什么它要写入input文件夹? 另一个是为什么它抱怨设备上没有剩余空间。 我有一个1TB的磁盘,只有210GB的使用。 我也使用了qemu-img,并调整了我的Docker.qcow2。 这里是我的Docker.qcow2的信息

 image:/Users/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 file format: qcow2 virtual size: 214G (229780750336 bytes) disk size: 60G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true refcount bits: 16 corrupt: false 

任何人都可以请帮助我通过使用上面的dockerfile将我的/ Users / Downloads文件夹中的内容复制到docker镜像中?

提前致谢。

通过从上下文目录创build一个tarball(在你的用例/Users/Downloads/ )并将该tarball发送到服务器。 tar包是在tmp目录下创build的,这可能是为什么当你尝试构build时你的空间不够用了。

当处理大型数据集时,推荐的方法是使用卷。 您可以使用绑定挂载卷来挂载主机中的文件。

如果您要添加的文件不是那么大,您可能需要使用.dockerignore来忽略/Users/Downloads下的其他文件。

您也可以使用$DOCKER_TMPDIR启动另一个临时目录的$DOCKER_TMPDIR守护进程