【问题标题】:Specifying superuser PostgreSQL password for a Docker Container为 Docker 容器指定超级用户 PostgreSQL 密码
【发布时间】:2016-03-28 04:08:24
【问题描述】:

在 Docker 容器中运行 PostgreSQL 数据库时,官方 PostgreSQL Docker Image 的 documentation 指定管理员密码应设置在环境变量中,例如:

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

对于那些不想在他们的脚本中硬编码纯文本密码的人,是否有更安全的选择可以考虑?

【问题讨论】:

    标签: postgresql docker boot2docker


    【解决方案1】:

    将配置设置作为环境变量注入是12 factor app 网站推荐的应用程序配置方法。

    或者,您可以创建自己的容器,从自定义配置文件中读取其配置:

    docker run -d mydockerapp --config mydevconfig.yaml
    

    但实际上,环境变量的使用在灵活性方面具有优势,因为它在所有平台上无处不在。为了使环境变量更可口,您可以在文件中指定它们。这至少可以确保同一台机器上的恶意用户无法从进程列表中收集凭据:

    $ cat env.db 
    POSTGRES_DB=myappdb
    POSTGRES_USER=admin
    POSTGRES_PASSWORD=pleasechangeme
    
    $ docker run --name postgres --env-file=env.db -d postgres
    

    最后,我发现有许多优秀的功能要求 docker 提供更好的秘密支持:

    根据我的经验,便利性往往胜过安全性,因此我认为可接受的解决方案需要时间才能获得足够的认同。就我个人而言,我预计会出现一种模拟 Kubernetes 项目对加密数据卷所做的解决方案:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 2021-12-23
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多