您好我正在使用docker部署一些服务,在这里我想在不同的docker容器之间共享docker卷 .
假设我有一个docker容器A,它在/ data处安装了一个卷 . 这是A的Dockerfile
VOLUME /data
根据我的理解,这会将一个卷附加到容器,但它不会将主机目录挂载到容器 . 所以这个卷里面的数据仍然在容器A里面 .
我有另一个容器B,它提供ftp服务 . 它访问volume / public下的数据 . B的Dockerfile是
VOLUME /public
现在我想将它们链接在一起,以便我可以使用B来管理A的数据 . 从docker doc https://docs.docker.com/engine/userguide/containers/dockervolumes/我将使用 --volumes-from
flag将A 's data volume to B. But this command will mount A'的数据挂载到B中的 /data
而不是 /public
,在这种情况下,容器B无法访问数据 . 我没有看到任何重命名挂载点的方法 .
处理此案件的任何建议或最佳做法?
非常感谢!
================================================== ==
仅数据容器为这种情况提供了一个很好的解决方案 . 但是如果你想使用volume-from并将数据挂载到不同的挂载点,这个问题可能会有所帮助! How to map volume paths using Docker's --volumes-from?
1 回答
您可能会发现很多指针都提到了仅限数据的容器和
--volumes-from
. 但是,自Docker 1.9以来,卷已成为一等公民,他们可以拥有名称,并具有更大的灵活性:现在很容易实现你想要的行为,这是一个例子:
service-data
的命名数据卷:-v
标志创建一个容器,将其安装在/ public文件夹中:出于测试目的,我们在映射文件夹中创建一个小文本文件:
请记住,如果两个容器都使用不同的图像,请注意所有权和权限!