在更新到v1.7.0后,Docker会抱怨无效的证书
在更新到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
这是这个版本的一个已知的问题,我能做些什么来解决这个问题?
这是boot2docker 1.7.0版中引入的已知问题: https : //github.com/boot2docker/boot2docker/issues/824
更新到boot2docker 1.7.1
更新到boot2docker 1.7.1修复了这个问题,如下所述。
boot2docker 1.7.0的选项
这似乎与networking接口在启动过程中出现的方式有关。 下面的选项可以用来解决这个问题。
选项1
解决方法是运行以下序列,它添加代码以等待所有networking接口存在:
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虚拟机中的.profile
文件中:
wait4eth1() { CNT=0 until ip a show eth1 | grep -q UP do [ $((CNT++)) -gt 60 ] && break || sleep 1 done sleep 1 } wait4eth1
这个function等待1分钟, eth1接口就会出现。
选项2
另一个select似乎是要做的
boot2docker delete boot2docker init boot2docker up
这将破坏boot2docker虚拟机 – 您可能会失去您所做的任何自定义设置。
只要运行这个命令就可以解决这个问题。 这是由Docker员工通过GitHubbuild议的。
boot2docker ssh sudo /etc/init.d/docker restart
不幸的是,每次启动boot2docker时都需要运行它。
我发现以下“简单”的替代工作。 使用shell别名 :
alias docker="docker --tlsverify=false"
感谢Mark Duncan 。
从故障排除指南:
docker-machine regenerate-certs default docker-machine restart default
然后你很好去,像往常一样运行
eval $(docker-machine env default)