【问题标题】:Docker complains about invalid certificate after update to v1.7.0更新到 v1.7.0 后 Docker 抱怨证书无效
【发布时间】: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


    【解决方案1】:

    这是 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 虚拟机中的 .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 虚拟机 - 您可能会丢失所做的任何自定义。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 这是因为网络接口的启动方式。一旦 boot2docker 完全启动,所有网络接口都已启动 - 然后重新启动将使用它们。我链接的 Gist 添加了一个在第一次启动期间等待网络接口出现的功能。
      【解决方案3】:

      我找到了以下“简单”的替代方法。使用shell alias:

      alias docker="docker --tlsverify=false"
      

      感谢Mark Duncan

      【讨论】:

        【解决方案4】:

        来自troubleshooting 指南:

        docker-machine regenerate-certs default
        
        docker-machine restart default
        

        然后你就可以开始了,像往常一样运行它

        eval $(docker-machine env default)
        

        【讨论】:

          猜你喜欢
          • 2017-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-11
          • 1970-01-01
          • 2015-12-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多