如何将大量文件挂载到远程 docker 守护程序?

How can I mount a volume of files to a remote docker daemon?

我有一个 Docker 图像 a,它对一组给定的文件执行一些逻辑。在本地 运行ning 时,我按如下方式启动 a

docker run -v /home/Bradson/data:/data a

这是它的工作。

现在我想 运行 a 在远程 Docker 守护程序上:

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

这是受 的启发。