Dockerfile与安全的Apache httpd服务器关于SSLauthentication文件的担忧分离

问题:

在非docker解决scheme中,SSL证书可以位于/etc/pki/CA/ ….以及在/etc/httpd/conf.d/*.conf文件中对这些文件的引用。 在一个安全的apache httpd服务器的docker镜像中如何pipe理/放置/使用这些SSL证书,而不是作为docker镜像的一部分?

目标:

使用提供的SSL证书为安全的apache httpd服务器创build一个docker映像。

想法如何解决这个问题:

Docker卷可以通过使用docker run -v /HOST/SSL/PATH:/CONTAINER/SSL/PATH将证书从主机挂载到映像来解决这个问题,然后可以在映像中引用它。

这是要走的路吗,还是可以用另一种方式来解决这个问题呢?

    您也可以按如下方式创build一个命名的数据卷。 在这个例子中,我将使用一个名为/ usr / local / apache / SSL的目录。

    1. 在你的apache容器中创build一个空目录/ usr / local / apache / SSL并提交
    2. 为您的数据卷启动一个新的基本容器,并创build相同的空目录/ usr / local / apache / SSL(可能需要先创build/ usr / local / apache)
    3. 提交在步骤2中创build的容器:docker commit CONTAINER_ID data / apachessl:latest)
    4. 创build指定的数据卷容器:docker run –name = DATAmyApacheSSLCerts -v / usr / local / apache / SSL data / apachessl true
    5. 使用“一次性容器”将SSL证书复制到/ usr / local / apache / SSL以将它们放在那里:docker run -it –rm = true –volumes-from = DATAmyApacheSSLCerts APACHE_CONTAINER / bin / bash
    6. 旋转你的“真正的”apache映像,但通过添加–volumes-from = DATAmyApacheSSLCerts到你的apache映像的运行命令来挂载数据卷

    现在,对/ usr / local / apache / SSL目录所做的任何更改都会一直存在,直到删除DATAmyApacheSSLCerts实例。

    忙碌的图像由于尺寸非常小而使数据量很大。

    你可能会想要调整你的数据量,并添加你的conf目录,以便更改仍然存在,但不要更改基本映像。 只要在你的数据镜像中创buildconf目录,拷贝来自apache安装目录的文件,并为conf目录添加另一个-v标志。

    **注意:您需要在主图像中有一个目录,与您的数据卷中共享的目录相对应。

    如果你不想把它们作为docker映像的一部分,那么从主机上挂载它们的卷确实是一个很好的select。