我有一个容器 Container-A,其中包含目录 /opt/test/data,该目录包含在构建镜像期间创建的文件。 现在我想将 /opt/test/data(Container-A 目录)共享到 Container-B 中,因为在其生命周期中需要使用这些文件。 我尝试了以下选项
docker run -it -d -v shareddata:/opt/test/data --name container-a test
然后运行容器B,如下:
docker run -it --volumes-from container-a --name container-b test-prod:latest
数据被共享,但它在主机上创建了一个名为 shareddata 的命名卷,其中包含 container-a 的 /opt/test/data 目录的重复数据。
我尝试了另一种选项,创建了一个名为 data 的命名卷并将其挂载到 container-a 中。然后我创建了一个指向已挂载卷上 /opt/test/data 的符号链接,如下所示。
ln -s /data/data /opt/test/data
现在已将/data卷安装到container-b中,但符号链接在container-b上无法工作,因为它显示为损坏的链接。
有没有办法在不重复数据的情况下将container-a目录共享给container-b?我们希望将静态且相当大约2.5G的数据保存在一个镜像中,并保持实例运行,该实例在test-prod镜像的多个容器之间共享。