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」でみれるようになる。