1. 启动容器时直接通过命令传递参数。
    缺点:只能传递有限的配置,无法为应用生成复杂的配置,某些配置不支持通过命令行参数进行传递。
  2. 将定义好的配置文件硬编码进镜像文件。
    缺点:每次修改配置文件需要重新构建镜像。
  3. 通过环境变量传递配置数据。
    缺点:无法在容器应用运行过程中更新环境变量。
  4. 通过 Docker 卷传送配置文件。
    缺点:分布式环境下,镜像运行在不同的机器,需要给每台机器本地都放置配置文件。

分布式环境中的配置管理系统,将配置内容从代码中完全分离出来,进行集中管理。K8S 中的 ConfigMap 就是做配置文件集中管理的。