将配置文件共享到多个docker容器

时间:2015-12-05 19:40:45

标签: linux docker

假设我的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已泊坞化。我希望能够在一个地方更新config_file.yml并让所有使用者(docker容器)获取此更改,而无需重建容器。

据我所知,符号链接不能用于访问Docker容器外部的主机上的文件。

首先想到的两个选项是:

  1. 设置从docker主机到docker容器的NFS共享
  2. 将配置文件放在共享的Docker卷中,并使用docker-compose将app1和app2连接到共享配置docker
  3. 我正在尝试确定其他选项,然后最终确定最佳行动方案。

1 个答案:

答案 0 :(得分:1)

主机安装卷怎么样?如果每个应用程序只读取配置,并且要求它位于容器内的不同位置,则可以执行以下操作:

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)。但是,这两种解决方案仍然是每个主机,并且数据不能同时在多个主机上使用。