【问题标题】:How can I mount a volume of files to a remote docker daemon?如何将大量文件挂载到远程 docker 守护进程?
【发布时间】:2018-12-20 16:17:27
【问题描述】:

我有一个 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 选项。

【问题讨论】:

  • 此答案stackoverflow.com/a/55683656/1315009 适合您的问题,尽管该问题并非完全重复。另一个问题要求提供“通用”副本,而三合会 create+cp+rm 的特定答案确实适用于远程卷,这是您(和我)关心的问题。

标签: docker docker-volume


【解决方案1】:

这是对我自己问题的回答。

我发现了以下纯 Docker 方法。我正在寻找一种将文件直接复制到卷的方法,但由于某种原因似乎不受支持?

但是,您可以将文件复制到容器中。所以以下工作:

DOCKER_HOST=tcp://remote_host:2375 docker volume create data-volume
DOCKER_HOST=tcp://remote_host:2375 docker create -v data-volume:/data --name helper busybox true
DOCKER_HOST=tcp://remote_host:2375 docker cp /home/Bradson/data helper:/data
DOCKER_HOST=tcp://remote_host:2375 docker rm helper
DOCKER_HOST=tcp://remote_host:2375 docker run -v data-volume:/data a

这灵感来自https://stackoverflow.com/a/37469637/10042924

【讨论】:

  • 我也在寻找解决此问题的方法。一种直接从 docker-compose 将本地目录创建到远程主机的方法,您在其中将卷设置为 /home/dev:/remote/dev
  • 更好的链接 stackoverflow.com/a/55683656/1315009 => 您要链接的“下一个”答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多