我正在使用Docker部署一些服务,想要在不同的容器之间共享Docker卷。
假设我有一个名为A的Docker容器,在其中挂载了一个卷到路径/data。这是它的Dockerfile:
VOLUME /data
根据我的理解,这将使容器附加一个卷,但不会将主机目录挂载到容器中。因此,该卷内的数据仍然在容器A中。
我有另一个容器B,它提供FTP服务。它访问位于卷 /public 下的数据。它的Dockerfile如下:
VOLUME /public
现在我想将它们链接在一起,以便我可以使用B来管理A的数据。根据Docker文档https://docs.docker.com/engine/userguide/containers/dockervolumes/,我将使用--volumes-from
标志将A的数据卷挂载到B上。但是该命令将A的数据挂载到B中的/data
而不是/public
,在这种情况下,容器B无法访问该数据。我没有看到重命名挂载点的任何方法。
有什么建议或最佳实践来处理这种情况吗?
数据专用容器为这种情况提供了一个很好的解决方案。但是如果您想使用--volumes-from
并将数据挂载到不同的挂载点,则此问题可能会有所帮助!如何使用Docker的--volumes-from映射卷路径?
debian:jessie
中/data
下的任何预先存在的文件都无法直接从容器实例访问。如果您需要混合原始数据和外部数据,则必须挂载单个文件而不是整个目录,但如果创建和更新随机文件,则这将很快变得难以管理。 - Stéphane C.