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 に更新すると、この問題は 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 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分間待機します。
別のオプションはそうすることです
boot2docker delete
boot2docker init
boot2docker up
これにより、boot2dockerが破壊されますVM-行ったカスタマイズが失われる可能性があります。
このコマンドを実行するだけで問題が解決します。これは、GitHubを介してDockerの従業員によって提案されました。
boot2docker ssh Sudo /etc/init.d/docker restart
残念ながら、boot2dockerを起動するたびに実行する必要があります。
トラブルシューティング ガイドから:
docker-machine regenerate-certs default
docker-machine restart default
そして、あなたは行ってもいいです、いつものようにこれを実行してください
eval $(docker-machine env default)