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

标签 docker docker-swarm

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

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

最佳答案

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

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

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

    关于docker - 与为容器设置环境变量相比,docker config有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56882529/

    相关文章:

    reactjs - Azure 上的 React + Express : Invalid Host Header

    docker - 如何运行Bitbucket管道在Nanobox上部署基于PHP的应用程序

    具有 swarm 作用域的 Docker 桥接网络不接受子网和驱动程序选项

    docker compose 卷类型 - 绑定(bind)与卷

    azure - 无法通过 docker 登录到 azure 容器注册表

    python - 尝试下载更大的洛杉矶县 - 内存不足

    docker - 是否可以查看docker swarm内部DNS记录?

    docker - 删除Docker limit-cpu、limit-memory、保留cpu和内存

    docker - 有没有办法在 yaml 中定义您的 Compose Swarm 所在的命名空间?

    docker - 如何将本地文件共享到 docker 容器在 swarm 中使用 docker-compose