一日一万行感謝のプログラミング

一日一万行感謝のプログラミング

ITエンジニアが書く普通のブログ

dockerでサーバー立てたけど、ブラウザからlocalhostで見れない時のチェックフロー

1つのコンテナでRailsとnpm起動して開発していたのですが、ブラウザでいつまで立てもlocalhostで見れなかったので
解決した順序をまとめ
ホスト
Windows7

ゲスト
OS:Ubunt16.04

rails server
http://0.0.0.0:3000

npm run dev
http://0.0.0.0:8080


まず起動したらコンテナに入って

curl localhost:3000
curl localhost:8080

ここでダメなら簡易サーバーの起動やホスト、ポート指定に失敗

次はホストマシーンからdockerのポート設定を確認

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                  NAMES
xxxxxxxx        image_name        "/bin/bash"              About an hour ago   Up About an hour    0.0.0.0:3000->3000/tcp, 0.0.0.0:8080->8080/tcp   container_name

これでポートフォワードが上手く言っている事を確認
ここまで来ればブラウザでlocalhostでは見れなくてもdocker ip直打ちで確認することは可能。なはず

最後に
VMの設定画面を起動

Virtual Box → Dockerマシーンを右クリックから設定 → ネットワーク → NAT設定の「高度」な設定を開いてポートフォワーディングクリック
ホストポート - ゲストポートが
3000
8080
で対になっている設定があればOK

ここまで来て晴れてブラウザから「localhost」でみれるようになる。