docker - 如何将文件卷挂载到远程 docker 守护进程?

标签 docker docker-volume

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

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

关于docker - 如何将文件卷挂载到远程 docker 守护进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51305537/

相关文章:

azure - 删除远程 Linux Azure 托管 docker 实例上未使用的 docker 镜像会出现 'unknown shorthand flag: ' a' in -aq' 错误

docker - K8S-Docker-ARM Unbutu 64位-QEMU:未捕获的目标信号11(分段故障)-内核已转储

Docker/Docker-compose 卷文件和共享问题

Docker Swarm : How to handle persistent data (e. g。数据库)

django - docker未运行Django服务器

python docker sdk如何在container.run中运行多个命令

docker - 从docker compose中的网络别名中删除服务名称

node.js - 如何将主机和容器目录与Dockerode同步?

docker - 如何删除 docker 镜像中的配置卷

docker - 从图像中删除卷