Dockerコンテナ使用時に何故サーバーを立てる際にIPアドレス0.0.0.0を指定するのか
概要
Dockerを利用する際に何故rails s
でバインドするIPアドレスを0.0.0.0
で指定するのか気になった為、備忘録として残す。
何故バインドするIPアドレスにlocalhost(127.0.0.1)ではなく、0.0.0.0
を指定するのか
ローカルマシンで127.0.0.1
にアクセスしようとしてもローカルにlistenするのではなく、Dockerコンテナにlistenしており、アクセスができない為、localhost(127.0.0.1)は指定しません。
そこで何故0.0.0.0
を指定するのかと言うと、Dockerで0.0.0.0
はワイルドカードIPアドレスとして公開しているからです。
このワイルドカードIPアドレスによって、ホストマシン(自分のMacなど)で到達可能な全てのIPアドレスが対象になっている為、ローカルマシンで127.0.0.1
や0.0.0.0
にアクセスしようとしても問題なくlistenしてくれます。
最後に
この知識が皆さんの参考になれば嬉しいです。何か気になる箇所や間違ってる箇所があればコメントして頂けると嬉しいです。ここまで読んで下さりありがとうございました〜
参考資料
ホスト上にコンテナのポートを割り当て [Docker]0.0.0.0でサーバーを立てる理由(Python)