我做了这样的dockerfile
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/
我的/ Users / Downloads /文件夹中还有其他名为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
一件奇怪的事是为什么它试图写入输入文件夹?另一个是为什么它抱怨设备上没有剩余空间。我有一个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
首先从上下文目录(在您的情况下为/Users/Downloads/
)创建一个tarball并将该tarball发送到服务器。压缩包是在tmp目录中创建的,这可能就是为什么在尝试构建时空间不足的原因。
当使用大型数据集时,建议的方法是使用卷。您可以使用绑定(bind)挂载卷从主机挂载文件。
如果您要添加的文件没有那么大,则可能需要使用.dockerignore
来忽略/Users/Downloads
下的其他文件。
您还可以使用$DOCKER_TMPDIR
用另一个临时目录启动docker守护进程
关于docker - Dockerfile构建错误并写入另一个文件夹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40513628/