当前位置:  开发笔记 > 数据库 > 正文

为Docker容器指定超级用户PostgreSQL密码

如何解决《为Docker容器指定超级用户PostgreSQL密码》经验,为你挑选了1个好方法。

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

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

对于那些不想在脚本中对纯文本密码进行硬编码的人,是否有更安全的选择需要考虑?



1> Mark O'Conno..:

将配置设置作为环境变量注入是12因子应用程序网站建议的应用程序配置方法。

http://12factor.net/config

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

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更好的秘密支持:

https://github.com/docker/docker/issues/13490

以我的经验,便利性是要优先于安全性的习惯,因此我认为接受可接受的解决方案需要足够的时间才能获得足够的心血。我个人预见了一个新兴的解决方案,该解决方案可以模拟Kubernetes项目对加密数据量所做的工作:

https://kubernetes.io/docs/concepts/configuration/secret/

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有