Abh*_*nav 5 docker dockerfile docker-volume
我有一个容器 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
Run Code Online (Sandbox Code Playgroud)
然后运行容器-B
docker run -it --volumes-from container-a --name container-b test-prod:latest
Run Code Online (Sandbox Code Playgroud)
数据已共享,但它在主机上创建一个命名卷共享数据,其中包含容器 a 的 /opt/test/data 目录的重复数据。
我尝试了另一种选择,即创建名称卷数据并将其安装在容器 a 中。然后我在已安装的卷上创建了 /opt/test/data 的符号链接,如下所示
ln -s /data/data /opt/test/data
Run Code Online (Sandbox Code Playgroud)
现在已将 /data 卷安装到容器 b,但符号链接在容器 b 上不起作用,因为它显示为损坏的链接。
有没有一种方法可以将容器 a 目录共享到容器 b 而不复制数据,因为我们希望将静态且相当大的数据(大约 2.5G)保留到一个图像,然后一个实例继续运行,该实例在多个容器之间共享测试产品图像?
Alf*_*nda -1
通常的方法是在启动容器时创建这些文件,而不是在构建时创建。您可以首先检查文件是否已创建,如果没有,则创建它们(或从 /tmp 或 wathever 移动它们)
例如,这是 mysql 的官方映像执行此操作的方式。
然后,您可以在该目录中挂载一个卷,并在容器之间共享它。
| 归档时间: |
|
| 查看次数: |
4632 次 |
| 最近记录: |