gpt4 book ai didi

Docker 将一个容器的目录挂载到另一个容器

转载 作者:行者123 更新时间:2023-12-05 08:12:53 28 4
gpt4 key购买 nike

我有一个容器 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

然后运行container-B as

docker run -it --volumes-from container-a --name container-b test-prod:latest

数据已共享,但它在主机上创建了一个命名卷 shareddata,其中包含容器-a 的/opt/test/data 目录的重复数据。

我尝试了另一种选择,即创建名称卷数据并将其安装在容器-a 中。然后我在挂载的卷上创建了一个/opt/test/data 的符号链接(symbolic link),如下所示

ln -s /data/data /opt/test/data

现在将/data 卷挂载到 container-b 但符号链接(symbolic link)在 container-b 上不起作用,因为它显示为断开的链接。

有没有一种方法可以在不复制数据的情况下将 container-a 目录共享到 container-b,因为我们希望将静态数据和相当大的大约 2.5G 的数据保存到一个图像中,然后一个实例继续运行并共享测试产品图像的多个容器?<​​/p>

最佳答案

如果文件已经存在于您作为卷挂载的容器的目录中,目录的内容将被复制到卷中。参见 Populate a volume using a container .

如果不复制,就无法将容器的目录挂载为卷。另一种方法是不将数据存储在容器中,而是在主机上创建一个卷并用数据填充它。这样,数据将只存在一次。

关于Docker 将一个容器的目录挂载到另一个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48186109/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com