相对于为容器设置环境变量,docker config有什么好处?

时间:2019-07-04 07:17:37

标签: docker docker-swarm

Docker配置和为容器设置环境变量似乎都实现了相同的目标。 特别是在考虑要设置的环境变量时,可以从文件(env_file)中获取。

与为容器设置环境变量相比,docker config有什么好处?

1 个答案:

答案 0 :(得分:1)

有很多,但这主要是选择问题。这里有一些好处:

  • Docker配置是不可变的,其中环境变量不是(这可能既有好处也有缺点)
  • 可使用docker config命令轻松管理Docker配置,而环境变量不在其中
  • 环境变量可能会在您的容器中发生冲突:您可以使用指向Mongo数据库的环境变量MONGODB_HOST=mongodb://foo:bar@my-mongo:27017,但是您在应用程序中使用的库也将使用此变量期望简单主机名,例如my-mongo并在运行时引发异常
  • 配置文件可能具有受限的读取权限(即,只有应用程序用户才能读取它),其中环境变量可能会泄漏到子进程或任何访问您的容器的人
  • 为了便于阅读或管理您的容器,可将配置文件分为几部分,环境变量不能
  • 在检查什么是有效的容器配置(即在容器中运行外壳并四处查看)时,使用配置文件比显示一堆可能不相关的环境变量(cat myconfig VS. {{1 }})
  • 总而言之,配置文件比环境变量更具分区性和可管理性

您可以看看this post,它不是特定于Docker的,但可以提供一些见解。