在非docker解决方案中,SSL证书可以位于/ etc / pki / CA / ….中,并在/etc/httpd/conf.d/*.conf文件中引用这些证书.如何在安装apache httpd服务器的docker镜像中管理/放置/使用这些SSL证书,而不是Docker镜像的一部分?
目标:
使用提供的SSL证书为安全apache httpd服务器创建docker镜像.
想法如何解决这个问题:
Docker卷可以通过使用docker run -v / HOST / SSL / PATH:/ CONTAINER / SSL / PATH将证书从主机挂载到映像来解决它,然后可以从映像中引用它.
这是要走的路,还是可以用另一种方式解决这个问题?
解决方法
>在apache容器中创建一个空目录/usr/local / apache / SSL并提交
>为您的数据卷启动一个新的基本容器并创建相同的空目录/usr/local / apache / SSL(可能需要先创建/usr/local / apache)
>提交在步骤2中创建的容器:docker commit CONTAINER_ID data / apachessl:latest)
>创建命名数据卷容器:docker run –name = DATAmyApacheSSLCerts -v /usr/local / apache / SSL data / apachessl true
>使用“一次性容器”将SSL证书复制到/usr/local / apache / SSL,将它们放在那里:docker run -it –rm = true –volumes-from = DATAmyApacheSSLCerts APACHE_CONTAINER / bin / bash
>调整“真正的”apache映像,但通过将–volumes-from = DATAmyApacheSSLCerts添加到apache映像的运行命令来挂载数据卷
现在,您对/usr/local / apache / SSL目录所做的任何更改都将保留,直到您删除DATAmyApacheSSLCerts实例.
BusyBox图像因其极小的尺寸而成为极佳的数据量.
您可能希望调整数据量并添加conf目录,以便更改仍然存在但不更改基本映像.只需在数据映像中创建conf目录,从基础apache安装中复制文件,并为conf目录添加另一个-v标志.
**注意:您需要在主映像中有一个与数据卷中共享的目录相对应的目录.