web-dev-qa-db-ja.com

Dockerはv1.7.0へのアップデート後に無効な証明書について不平を言う

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

これはこのバージョンの既知の問題ですか?これを修正するにはどうすればよいですか?

34
nwinkler

これは、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

この関数は、eth1インターフェースが起動するまで最大1分間待機します。

オプション2

別のオプションはそうすることです

boot2docker delete
boot2docker init
boot2docker up

これにより、boot2dockerが破壊されますVM-行ったカスタマイズが失われる可能性があります。

31
nwinkler

このコマンドを実行するだけで問題が解決します。これは、GitHubを介してDockerの従業員によって提案されました。

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

残念ながら、boot2dockerを起動するたびに実行する必要があります。

22
Ted Avery

次の「簡単な」代替作業を見つけました。 Shell alias を使用します:

alias docker="docker --tlsverify=false"

Mark Duncan に感謝します。

5

トラブルシューティング ガイドから:

docker-machine regenerate-certs default

docker-machine restart default

そして、あなたは行ってもいいです、いつものようにこれを実行してください

eval $(docker-machine env default)
0
Calahad