【发布时间】:2015-06-22 12:52:07
【问题描述】:
更新到 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
这是这个版本的一个已知问题吗?我可以做些什么来解决这个问题?
【问题讨论】:
标签: 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
这是这个版本的一个已知问题吗?我可以做些什么来解决这个问题?
【问题讨论】:
标签: docker boot2docker
这是 boot2docker 1.7.0 版本中引入的已知问题:https://github.com/boot2docker/boot2docker/issues/824
更新到boot2docker 1.7.1 可修复此问题,如here 所述。
这似乎与启动期间网络接口的出现方式有关。以下选项可用于解决此问题。
修复方法是运行以下序列,添加代码以等待所有网络接口都存在:
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
此函数最多等待 1 分钟以等待 eth1 接口出现。
另一种选择似乎是做
boot2docker delete
boot2docker init
boot2docker up
这将破坏 boot2docker 虚拟机 - 您可能会丢失所做的任何自定义。
【讨论】:
只需运行此命令即可解决我的问题。这是 Docker 员工通过 GitHub 提出的建议。
boot2docker ssh sudo /etc/init.d/docker restart
不幸的是,每次启动 boot2docker 时都需要运行它。
【讨论】:
【讨论】:
来自troubleshooting 指南:
docker-machine regenerate-certs default
docker-machine restart default
然后你就可以开始了,像往常一样运行它
eval $(docker-machine env default)
【讨论】: