pipe理必须与TLS通信的Docker容器的证书/密钥的最佳方法是什么?

我将我的应用程序移动到Docker,而我不知道如何处理pipe理证书/密钥。 在单个主机中,我有两个Docker容器,必须通过TLS监听/通信到多个客户机。 在docker之前,我有一个服务器密钥和自签名证书,而我的客户使用自签名证书与服务器应用程序通信。

但是现在他们是分开的docker集装箱,什么是正确的方法? 我是否将证书/密钥推入容器中的目录? 如果是这样,那么我的dockerfile将需要复制证书/密钥,我不希望密钥成为检查图像的一部分。 (安全)

或者,我是否使用VOLUME并在主机上持有密钥/证书? 我试过,但容器根用户无法看到私钥,只读的主机root用户。

什么是真正正确的方法来做到这一点? 谢谢

花了我一些时间,但我想出了如何做到这一点。

一个RUN命令行,你可以挂载一个主机目录作为数据卷。 这通过在dockerfiles中使用VOLUME不起作用。 您使用switch -v hostdir:datavolume

http://docs.docker.com/userguide/dockervolumes/

我用它来将容器数据卷连接到存储密钥和证书的主机目录。

谢谢

我知道这是一个古老的问题,但我想出了一个有点类似,但更通用的方法。 我的解决scheme是创build一个数据专用的容器,将证书及其密钥安装为/etc/ssl/certs/host//etc/ssl/private/host/ 。 将其命名为certificates 。 在即将到来的容器中,您可以使用--volumes-from certificates轻松使用这些--volumes-from certificates