Docker for mac で nginx を起動するサンプルが動かないとき
Docker for mac 入れる
こちらを参考にして入れてみる。
Version
% docker --version Docker version 1.13.1, build 092cba3 % docker-compose --version docker-compose version 1.11.1, build 7c5d5e4 % docker-machine --version docker-machine version 0.9.0, build 15fd4c7
Step 3 でエラーが起きる
nginxイメージを起動できない。
% docker run -d -p 80:80 --name webserver nginx Unable to find image 'nginx:latest' locally docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.65.1:53: server misbehaving. See 'docker run --help'.
でgithubのissueにもある問題っぽい
で、上記の参考にさせてもらったブログを見ると、betaにすると治ったらしいのでbetaにする (stableをuninstallしてbetaをDL、インストール)
% docker --version Docker version 1.13.1, build 092cba3 % docker-compose --version docker-compose version 1.11.1, build 7c5d5e4 % docker-machine --version docker-machine version 0.9.0, build 15fd4c7
変わらないようにみえる…
気を取り直して再実行
% docker run -d -p 80:80 --name webserver nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx 5040bd298390: Pull complete 333547110842: Pull complete 4df1e44d2a7a: Pull complete Digest: sha256:f2d384a6ca8ada733df555be3edc427f2e5f285ebf468aae940843de8cf74645 Status: Downloaded newer image for nginx:latest 62ed7ad57e72753812205e627cb9b35ae0ee66a54a51bd4f895cf1ede9337628
入った。
が、 http://localhost:80/ を叩いても接続できない。
docker ps
を叩いても、ちゃんと大丈夫そうに見える。
% docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 89ec878940a4 nginx "nginx -g 'daemon ..." 12 minutes ago Up 12 minutes 0.0.0.0:80->80/tcp, 443/tcp webserver
Mac本体のportを見てもListenしてるように見える。
% sudo lsof -i -P | grep LISTEN | grep 80rpcbind 280 daemon 4u IPv4 0x7fa9588305b9f605 0t0 TCP *:111 (LISTEN) // 略 com.docke 35368 edy 25u IPv4 0x7fa958831ccb1605 0t0 TCP *:80 (LISTEN) // 略
stackoverflowに聞いてみると同様の人がいる。
http://127.0.0.1 だと動くかもっていう話だったから試したら動いた。マジで…。 そもそもnginxの設定にlocalhostで受けるようになってないだけ?
2017/02/18追記
ホストMacのhostsにlocalhostをIPv6で解決する記述があったため、これをコメントアウトしたら動いた。
% cat /etc/hosts # 略 #::1 localhost