docker容器ssl证书

有什么优雅的方式来添加ssl证书来自docker拉来的图像?

我正在寻找一种将文件添加到/ 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,并使容器类 – 奇怪的工作。

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

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

正如上面评论中所build议的那样,如果主机上的证书存储与guest虚拟机兼容,则可以直接挂载它。

在Debian主机(和容器)上,我已经成功完成:

 docker run -v /etc/ssl/certs:/etc/ssl/certs:ro ... 

我正在尝试做类似的事情。 正如上面所说的,我想你会想用一个自定义的Dockerfile来创build一个新的镜像(使用你的镜像作为基础镜像), ADD你的证书,然后RUN update-ca-certificates 。 这样,每次从这个新图像启动一个容器时,您将拥有一致的状态。

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

比方说Docker生成的Dockerfile生成了IMAGE_ID。 在下一个docker run -d [any other options] IMAGE_ID ,由该命令启动的容器将具有您的证书信息。 简单和可重复。