【发布时间】:2019-11-14 10:32:24
【问题描述】:
情况
假设我们有两个容器,A 和 B。
A 和 B 的共享名称卷为:shared-volume。
A container 已将 shared-volume 挂载到 /root/shareA。
B container 已将 shared-volume 挂载到 /root/shareB。
这意味着,当我们转到B container 并在/root/shareB 中创建文件"example.txt" 时。在A container,我们可以访问"example.txt",使A container 和B container 拥有一个共享卷,通过shared-volume。
我为此使用 docker-compose:
version: '2.1'
volumes:
shared-volume:
services:
A:
image: imageA
volumes:
- shared-volume:/root/sharedA
B:
image: imageB
volumes:
- shared-volume:/root/sharedB
问题
我使用imageB 作为存储代码和资源的容器,imageA 将类似于消费者、Web 服务器,它将使用imageB 中的文件。 imageA 和 imageB 通过命名卷共享文件(如上所示)。
根据我的测试,imageB 与imageA 成功共享文件。
问题是,当我用较新的文件更新imageB 时,共享卷的文件仍然保持不变。我必须删除所有容器和卷,重新启动它,然后应用较新的文件。
这意味着我必须运行 docker-compose down -v 然后 docker-compose up -d。
imageA 类似于网络服务器,不应该因为任何原因而被关闭。
我想知道我是否在某些地方有错误或缺少某些东西 imageA 可以在不关闭 imageA 的情况下从 imageB 获取更新的代码,而且它的音量很大?
谢谢。
【问题讨论】:
标签: docker docker-compose docker-volume continuous-delivery