迁移由docker-machine生成的机器证书

时间:2016-05-25 11:04:15

标签: docker docker-machine docker-swarm

我在本地计算机上使用docker-machine生成了一个swarm集群,并且希望能够将容器从不同的主机部署到swarm。

问题是我无法确定要使用哪些证书或我是否正确链接它们。

我所做的所有尝试都产生了

x509: certificate signed by unknown authority...

我必须在每个要访问的主机上生成新证书吗?

我尝试从~/.docker/machine/certs.config文件中复制我的证书,来自" ~/.docker/machine/machines/swarm-master"但只要我尝试使用它们,docker-machinedocker就会对我大喊大叫。

2 个答案:

答案 0 :(得分:1)

每次出现证书问题时(如:未正确安装),您都可以向Install registry certificates on client Docker daemons报告。

它是关于docker注册表的,但也适用于您可能必须在docker机器上安装的任何证书(无论是boot2docker,还是普通的Ubuntu或RHEL / Centos服务器。

在缺少证书的主机中,尝试使用openssl s_client -connect命令获取所述证书,就像我在this script add_reg_crt.sh中一样,使用"其他主机"是一个boot2docker one:

if [[ ! -e /var/lib/boot2docker/registry.crt ]]; then
    openssl s_client -connect kv:5000 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM | sudo tee /var/lib/boot2docker/registry.crt
fi
rline=$(tail -2 /var/lib/boot2docker/registry.crt | head -1)
if [[ "$(grep ${rline} /etc/ssl/certs/ca-certificates.crt)" == "" ]]; then
    cat /var/lib/boot2docker/registry.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt
fi

答案 1 :(得分:0)

我写了一个小节点实用程序,用于导入和导出连接到它们所需的docker机器证书https://www.npmjs.com/package/@mumbacloud/dmport这将返回带有嵌入证书的json