假设我的 Docker 主机上有以下配置文件,并且我希望多个 Docker 容器能够访问该文件。
/opt/shared/config_file.yml
在典型的非 Docker 环境中,我可以使用符号链接,例如:
/opt/app1/config_file.yml -> /opt/shared/config_file.yml
/opt/app2/config_file.yml -> /opt/shared/config_file.yml
现在假设 app1 和 app2 已进行 Docker 化。我希望能够在一处更新 config_file.yml 并让所有使用者(docker 容器)接受此更改,而不需要重建容器。
据我了解,符号链接不能用于访问 docker 容器外部的主机上的文件。
我首先想到的两个选项是:
- 设置从 docker 主机到 docker 容器的 NFS 共享
- 将配置文件放入共享 Docker 卷中,并使用 docker-compose 将 app1 和 app2 连接到共享配置 docker
我正在尝试确定其他选择,然后最终决定最佳行动方案。
主机安装的卷怎么样?如果每个应用程序仅读取配置并且要求它位于容器内的不同位置,您可以执行以下操作:
docker run --name app1 --volume /opt/shared/config_file.yml:/opt/app1/config_file.yml:ro app1image
docker run --name app2 --volume /opt/shared/config_file.yml:/opt/app2/config_file.yml:ro app2image
主机上的文件可以安装在每个容器的单独位置。在 Docker 1.9 中,您实际上可以使用特定插件中的任意卷来保存数据(例如Flocker https://docs.clusterhq.com/en/1.8.0/introduction/flocker-plugin.html)。然而,这两种解决方案仍然是针对每个主机的,并且数据不能同时在多个主机上可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)