如何将大量文件挂载到远程 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
这是受 的启发。
我有一个 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
这是受