Docker:ホストとコンテナのポート対応を理解する

コンテナ内の待受、EXPOSE、公開ポートを区別し、ループバック限定の例で確認手順を説明します。

Docker Engine の bridge ネットワークを例にします。host ネットワークや基盤により挙動は異なります。実行するとコンテナを作成するため、先に 8080 の使用状況を確認してください。

1. 公開設定を読む

127.0.0.1 はホストの待受アドレス、8080 はホスト側、80 はコンテナ側です。ローカルの http://127.0.0.1:8080/ で確認します。タグは更新され得るため、本番ではバージョン固定方針に従ってください。

docker run --rm --name portcyou-demo -p 127.0.0.1:8080:80 nginx:stable-alpine

2. 公開設定とアプリを別々に確認する

別の端末で対応付け、状態、ログを調べます。EXPOSE はメタデータでありホストへの公開ではありません。-p もアプリの待受は作りません。コンテナ内のループバック限定では届かない場合があります。

docker port portcyou-demo
docker ps --filter name=portcyou-demo
docker logs --tail 30 portcyou-demo

3. 公開範囲を確認して例を終了する

ホストアドレスの省略は公開範囲を広げます。Docker は 28.0.0 より前の版で同一 L2 上からループバック公開へ到達できる注意点を示しています。更新と経路確認を行ってください。例は終了時に --rm で削除されるため、重要データを保存しないでください。

docker stop portcyou-demo

出典と確認

資料確認日:

関連ポート