boot2dockerを1.7.0にUpgradeしたらハマった2つのこと
はじめに
Docker 1.7がリリースされましたね!
早速触ってみようと思い、手元のMacBook上でboot2dockerをupgradeしました。
$ boot2docker upgrade
が、そこで2つのトラブルが発生しました。その解決方法をご紹介します。
1つ目
dockerコマンドを実行すると、以下のようなエラーが発生します。
$ docker version Client version: 1.7.0 Client API version: 1.19 Go version (client): go1.4.2 Git commit (client): 0baf609 OS/Arch (client): darwin/amd64 An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/version: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103
一度deleteして再度起動すると解消されるのですが...
$ boot2docker delete $ boot2docker init $ boot2docker start
またstop -> startすると同じエラーが発生します。
$ boot2docker stop $ boot2docker start $ docker version Client version: 1.7.0 Client API version: 1.19 Go version (client): go1.4.2 Git commit (client): 0baf609 OS/Arch (client): darwin/amd64 An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/version: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103
この件はboot2dockerのissueとして上がっていました。 ワークアラウンドとしては、TLS通信を無効にすることです。
$ boot2docker ssh docker@boot2docker:~$ sudo vi /var/lib/boot2docker/profile DOCKER_TLS=no docker@boot2docker:~$ exit $ boot2docker stop $ boot2docker start
これでエラーは解消されます。が。
2つ目
TLS通信に起因する問題が解消したと思ったら、違うエラーが発生しました。
$ docker version Client version: 1.7.0 Client API version: 1.19 Go version (client): go1.4.2 Git commit (client): 0baf609 OS/Arch (client): darwin/amd64 An error occurred trying to connect: Get https://192.168.59.104:2376/v1.19/version: dial tcp 192.168.59.104:2376: i/o timeout
通信エラーが発生しています。こちらはStackOverflowに同じ問題が発生した人がいました。
ワークアラウンドとして、VirtualBoxのホストオンリーアダプターを確認します。
そしてDockerの仮想ネットワーク宛の通信経路をホストオンリーアダプターに向けます。
$ sudo route -nv add -net 192.168.59 -interface vboxnet0 u: inet 192.168.59.0; u: link vboxnet0:a.0.27.0.0.0; RTM_ADD: Add Route: len 140, pid: 0, seq 1, errno 0, flags:<UP,STATIC> locks: inits: sockaddrs: <DST,GATEWAY,NETMASK> 192.168.59.0 vboxnet0:a.0.27.0.0.0 (0) 0 ffff ff add net 192.168.59: gateway vboxnet0
これで通信エラーが解消されます。
$ docker version Client version: 1.7.0 Client API version: 1.19 Go version (client): go1.4.2 Git commit (client): 0baf609 OS/Arch (client): darwin/amd64 Server version: 1.7.0 Server API version: 1.19 Go version (server): go1.4.2 Git commit (server): 0baf609s OS/Arch (server): linux/amd64
さいごに
ちょっとハマったことをメモとして残してみました。さ、これからちゃんと触ります。