我有一个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
选项。
答案 0 :(得分:0)
这是我自己的问题的答案。
我发现了以下纯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