ポートフォワーディングとは
インターネットから特定のポート番号宛てに届いた通信(パケット)を、予め設定しておいた別の機器に転送する機能のこと。
Dockerの場合、デフォルトではコンテナ内は閉じられているためホストや外部からはアクセスできない状態になっている。そのため、ポートフォワーディングでホストのポートからDocker内で解放されているポートに向けて通信を転送する必要がある。
ポートフォワーディングの設定
Dockerイメージを単にdocker runだけではホストから接続できないため、-pオプションを付けてポートフォワーディングを設定する。書き方は以下のようになる。
docker run -d -p <ホストポート>:<コンテナポート> <イメージID>
// 例えばDockerコンテナ側が8080ポートの場合
docker run -d -p 9000:8080 <イメージID>
上記のように実行することで、http://localhost:9000でホスト側からアクセスできるようになる。
もしポートフォワーディングを設定せずに、http://localhost:8080にアクセスしようとしても失敗する。