我有一个 Docker 镜像 a
,它对给定的文件集执行一些逻辑。在本地运行时,我按如下方式启动 a
:
docker run -v /home/Bradson/data:/data a
这完成了它的工作。
现在我想在远程 Docker 守护进程上运行 a
:
DOCKER_HOST=tcp://remote_host:2375 docker run -v /home/Bradson/data:/data a
我现在收到错误,/data
不包含任何内容,很可能是因为远程主机上不存在 /home/Bradson/data
。
我该如何处理这个问题?我是否应该首先 scp
/home/Bradson/data
到远程主机上的某个目录,并在 -v
选项中引用该目录?有没有一种纯粹的 Docker 方法?
请注意,我想让 /home/Bradson/data
在运行时可用,而不是在 a
构建期间可用。因此我使用了 -v
选项。
最佳答案
这是我自己问题的答案。
我发现了以下纯 Docker 方法。我正在寻找一种将文件直接复制到卷的方法,但由于某种原因似乎不支持这种方法?
但是,您可以将文件复制到容器中。因此,以下工作有效:
export DOCKER_HOST=tcp://remote_host:2375
docker volume create data-volume
docker create -v data-volume:/data --name helper busybox true
docker cp /home/Bradson/data helper:/data
docker rm helper
docker run -v data-volume:/data a
关于docker - 如何将文件卷挂载到远程 docker 守护进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51305537/