boot2docker を導入する時にNAT設定が必要だった

DockerをOSXから使える様にまとめてくれている エントリがあった。

以前 Docker に挑んで少し触ったくらいで追ってなかったのだけれど、 エントリによると最近は boot2docker なんてコマンドがありDocker用に色々やってくれるらしい。 dokkuで個人Heroku作りたいのもあり試してみた。

エントリ通りにしたら2箇所で躓いたのでメモしておく。

トラブル

  1. OSX上で docker version が失敗した
  2. docker pull dockerfile/ghost が失敗した
1
2
3
4
5
6
7
8
9
$ docker version
Client version: 0.11.1
Client API version: 1.11
Go version (client): go1.2.1
Git commit (client): fb99f99
2014/06/07 13:41:59 Get http://localhost:4243/v1.11/version: EOF
$ docker pull dockerfile/ghost
...
... : dial tcp: lookup index.docker.io on 172.20.10.1:53: no answer from server

解決方法

OSX上で docker version が失敗した

VirtualBoxのネットワーク::NAT::ポートフォワーディング設定をする。

image

以下みたいな事をVirtualBoxの管理のもと行なっている

$ssh -L 4243:local:2375 localhost -p 2022

docker pull dockerfile/ghost が失敗した

DNSの指定を修正して再起動した。

1
2
3
4
5
6
7
8
$ boot2docker ssh
docker@boot2docker:~$ vi /etc/resolv.conf
## 以下を追加
## nameserver 8.8.8.8
docker@boot2docker:~$ cat /etc/resolv.conf
nameserver 8.8.8.8
docker@boot2docker:~$ exit
$ boot2docker restart

調査内容

OSX上で docker version が失敗した

  1. telnet localhost 4243 が拒否される事を確認した
  2. boot2docker-vm にログインして docker version が成功する事を確認した
  3. docker が開いているポート一覧を確認した
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$ telnet localhost 4243
[masumi(%3)@air-trout blog]$ telnet localhost 4243
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
$ boot2docker ssh
docker@boot2docker:~$ docker version
..
docker@boot2docker:~$ ps aux | grep docker
624 root     /usr/local/bin/docker -d -D -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2375

docker pull dockerfile/ghost が失敗した

エラーメッセージでググったらIssueが見つかったので試した。 どうやらvm内部からdnsを解決できなかった模様。

comments powered by Disqus