Dockerfile 安全 apache httpd 服务器与 SSL 认证文件相关的关注点分离

Dev*_*Dev 5 linux https disk-volume ssl-certificate docker

问题:

在非 docker 解决方案中,SSL 证书可以位于 /etc/pki/CA/.... 并在 /etc/httpd/conf.d/*.conf 文件中引用这些证书。这些 SSL 证书必须如何在 docker 镜像中管理/放置/使用以用于安全的 apache httpd 服务器而不是 docker 镜像的一部分?

目标:

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

如何解决这个问题的想法:

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

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

Pab*_*blo 2

您还可以按如下方式创建命名数据卷。在本例中我将使用名为 /usr/local/apache/SSL 的目录。

  1. 在 apache 容器中创建一个空目录 /usr/local/apache/SSL 并提交
  2. 为您的数据卷启动一个新的基本容器并创建相同的空目录 /usr/local/apache/SSL (可能需要首先创建 /usr/local/apache)
  3. 提交步骤 2 中创建的容器: docker commit CONTAINER_ID data/apachessl:latest)
  4. 创建命名数据卷容器: 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 实例。

Busybox 图像由于其极小的尺寸而产生大量数据。

您可能需要调整数据量并添加 conf 目录,以便更改持续存在但不更改基本映像。只需在数据映像中创建 conf 目录,复制基本 apache 安装中的文件并为 conf 目录添加另一个 -v 标志即可。

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