假设我的Docker主机上有以下配置文件,并且我希望多个Docker容器能够访问此文件。将配置文件共享到多个Docker容器
/opt/shared/config_file.yml
在一个典型的非泊坞环境,我可以使用符号链接,使得:
/opt/app1/config_file.yml -> /opt/shared/config_file.yml
/opt/app2/config_file.yml -> /opt/shared/config_file.yml
现在假定APP1和App2的dockerized。我希望能够在一个地方更新config_file.yml,并让所有消费者(码头集装箱)都能够在不需要重建容器的情况下获取此更改。
我知道符号链接不能用于访问主机上位于泊坞窗容器外部的文件。
浮现在脑海中的前两个选项分别是:
- 从搬运工主机设置NFS共享,以Docker容器
- 放在一个共享泊坞窗卷的配置文件,并使用搬运工,撰写到将app1和app2连接到共享配置码头
我试图找出其他选项,然后最终决定最佳的行动方案。
将文件安装为卷是您要查找的内容(请参阅@AndyShinn的答案)。为了扩展到多个容器,你有没有考虑运行一个配置存储如consul或etcd的配置?有兼容的模板引擎可以通过配置更改保持容器中的本地文件最新。请参阅:https://github.com/kelseyhightower/confd –
马克,谢谢你的建议。领事和etcd看起来很有趣。我认为服务发现/分布式配置概念可以解决很多这些问题。 – kgx