是否有任何优雅的方法将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并使容器变得有点奇怪.
正如上面的评论中所建议的,如果主机上的证书存储与guest虚拟机兼容,则可以直接安装它.
在Debian主机(和容器)上,我成功完成了:
docker run -v /etc/ssl/certs:/etc/ssl/certs:ro ...
使用以下命令将证书挂载到Docker 容器-v
:
docker run -v /host/path/to/certs:/container/path/to/certs -d IMAGE_ID "update-ca-certificates"
我正在尝试做类似的事情.如上所述,我认为您希望使用自定义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
,由该命令启动的容器将具有您的证书信息.简单,可重复.