更新到v1.7.0后,Docker会抱怨证书无效

时间:2015-06-22 12:52:08

标签: docker boot2docker

更新到Docker v1.7.0(以及boot2docker)后,我在运行docker ps时收到以下错误:

x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103

这是此版本的已知问题,我该怎么做才能解决此问题?

4 个答案:

答案 0 :(得分:31)

这是boot2docker版本1.7.0中引入的已知问题:https://github.com/boot2docker/boot2docker/issues/824

更新到boot2docker 1.7.1

更新到boot2docker 1.7.1修复了此问题,如here所述。

boot2docker 1.7.0的选项

这似乎与网络接口在引导期间出现的方式有关。可以使用以下选项来解决此问题。

选项1

修复是运行以下序列,它添加代码以等待所有网络接口出现:

boot2docker ssh
sudo curl -o /var/lib/boot2docker/profile https://gist.githubusercontent.com/garthk/d5a17007c277aa5c76de/raw/3d09c77aae38b4f2809d504784965f5a16f2de4c/profile
sudo halt
boot2docker up

来源(以及有关下载代码的详细信息):https://gist.github.com/garthk/d5a17007c277aa5c76de

这解决了我的问题,虽然我不得不通过VirtualBox UI停止 boot2docker-vm 以获得干净的开始。

Gist将以下内容添加到boot2docker VM中的.profile文件中:

wait4eth1() {
        CNT=0
        until ip a show eth1 | grep -q UP
        do
                [ $((CNT++)) -gt 60 ] && break || sleep 1
        done
        sleep 1
}
wait4eth1

此功能最多等待1分钟, eth1 界面出现。

选项2

另一种选择似乎是

boot2docker delete
boot2docker init
boot2docker up

这将破坏boot2docker VM - 您可能会丢失已完成的任何自定义。

答案 1 :(得分:22)

只需运行此命令即可解决问题。这是由Docker员工通过GitHub提出的。

boot2docker ssh sudo /etc/init.d/docker restart

不幸的是,每次启动boot2docker时都需要运行它。

答案 2 :(得分:5)

我发现以下“简单”替代方案。使用shell alias

alias docker="docker --tlsverify=false"

感谢Mark Duncan

答案 3 :(得分:0)

来自troubleshooting指南:

docker-machine regenerate-certs default

docker-machine restart default

然后你很高兴去,像往常一样运行

eval $(docker-machine env default)