Docker 容器 SSL 证书

新手上路,请多包涵

是否有任何优雅的方法可以将 SSL 证书添加到来自 docker pull 的图像?

我正在寻找一种简单且可重复的方式将文件添加到 /etc/ssl/certs 并运行 update-ca-certificates。 (这应该涵盖 ubuntu 和 Debian 映像)。

我在 CoreOS 上使用 docker,CoreOS 机器信任所需的 SSL 证书,但 docker 容器显然只有默认值。

我尝试使用 docker run --entrypoint=/bin/bash 然后添加证书并运行 update-ca-certificates ,但这似乎永久覆盖了入口点。

我现在也想知道,将 /etc/ssl/certs 从主机副本安装到容器上会更优雅吗?这样做会隐含地允许容器信任与主机相同的东西。

我正在使用一个烦人的代理,它会放弃一切:(。它破坏了 SSL 并使容器有点奇怪。

原文由 Beau Trepp 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

使用 -v 将证书安装到 Docker 容器 上:

 docker run -v /host/path/to/certs:/container/path/to/certs -d IMAGE_ID "update-ca-certificates"

原文由 cdrev 发布,翻译遵循 CC BY-SA 3.0 许可协议

我正在尝试做类似的事情。如上所述,我认为您希望使用自定义 Dockerfile(使用您提取的图像作为基础图像)构建一个新图像, ADD 您的证书,然后 RUN update-ca-certificates 。这样,每次从这个新镜像启动容器时,您将拥有一致的状态。

 # Dockerfile
FROM some-base-image:0.1
ADD you_certificate.crt:/container/cert/path
RUN update-ca-certificates

假设 docker build 针对 Dockerfile 生成的 IMAGE_ID。在下一个 docker run -d [any other options] IMAGE_ID ,由该命令启动的容器将包含您的证书信息。简单且可重复。

原文由 shudgston 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题