将我的站点cert.key和cert.pem放在Nginx Docker容器中是否是一个好习惯?

在本地我一直在开发一个Nginx容器,它的所有ssl configs和ssl证书都在一个目录中。

但是,现在我正要转向prod,我很好奇,如果在nginx容器中有证书是好的做法?

或者,我可以直接将证书放在服务器上。

对社区对此有何看法感到好奇。

就个人而言,我永远不会把秘密放在docker图像里面。 始终在容器启动时安装它们。 因为env_var可以被容器内的所有进程访问,并且更有可能被应用程序logging,所以更喜欢使用env_var volume挂载。

图片应该被认为是可共享的(跨越多个团队/ envs ..),但是一旦您将重要的机密信息(如cert.pem )发送给他们,可共享的方面就有点危险了。

另外,通常不是你们团队的每个开发者都需要知道你的产品秘密,但是他们很可能有权访问docker图片。

您可能需要查看Kubernetes Secrets如何将敏感数据共享到您的容器。 较新版本的Docker(1.13)具有类似的机制(docker机密)与容器共享秘密。