Docker 配置与密钥管理:深入解析与实战操作
1. 一流配置抽象
在实际应用中,env_specific_config资源会经过一些调整后映射到greetings服务容器里。默认情况下,配置资源会挂载到容器文件系统的/<config_name>路径,比如/env_specific_config。在这个示例里,env_specific_config被映射到目标位置/config/config.${DEPLOY_ENV:-prod}.yml。所以,在开发环境中部署时,特定于环境的配置文件会出现在/config/config.dev.yml。
该配置文件的所有权被设置为userid=1000和groupid=1000,而默认情况下,配置资源文件的所有者和所属组的 ID 都是 0。文件权限也被缩小到 0400 模式,这意味着只有文件所有者可以读取该文件,而默认是所有者、所属组和其他用户都能读取(0444)。
虽然对于这个在我们控制下的应用来说,这些更改并非严格必要,应用也可以按照 Docker 的默认设置运行。但其他应用可能没这么灵活,它们的启动脚本可能有特定的工作方式且无法更改。特别是,为了适应某些需要以特定用户身份运行并从预定位置读取配置文件的程序,你可能需要控制配置文件名和所有权。Docker 的服务配置资源映射功能可以满足这些需求,甚至在必要时,你还能以不同方式将