docker container port コマンドの使い方
docker container port
(あるいは docker port
)コマンドを使用すると、Docker コンテナの中で公開されているポート番号 (private port) が、ホスト側のどのポート番号にマッピングされているかを調べることができます。
$ docker container port <コンテナ名> [コンテナ側ポート番号]
例えば、my-nginx
コンテナの中で Web サーバーが動作しているとして、それがホスト側から見てどのポート番号にマッピングされているかを調べるには以下のようにします。
$ docker container port my-nginx
80/tcp -> 0.0.0.0:8000
80/tcp -> :::8000
この例では、コンテナ側の 80 番ポートが、ホスト側の 8000 番ポートにマッピングされていることがわかります。
つまり、コンテナの Web サーバーには、http://localhost:8000
といったアドレスでアクセスできます。
特定の(コンテナ側の)ポート番号に関してだけ調べることもできます。 次の例では、コンテナ側の 80 番ポートに対して、ホスト側のどのポートがマッピングされているかを調べています。
$ docker container port my-nginx 80
0.0.0.0:8000
:::8000
(おまけ)nginx サーバーを立ち上げて実際に試してみる
Alpine Linux をベースにした nginx サーバーのイメージ (nginx:alpine
) はとても軽量(20MB くらい)なので、これを利用して、上記の docker container port
コマンドを試してみます。
コンテナで nginx サーバーを起動するには次のように実行します。
ここでは、コンテナ名を my-nginx
とし、ホスト側の 8000 番ポートとコンテナ側の 80 番ポートを結びつけています。
$ docker container run -d -p 8000:80 --name my-nginx nginx:alpine
コンテナが起動したら、ホスト PC 側で http://localhost:8000
にアクセスすると Web ページを表示できます。
この状態で、次のようにポート番号のマッピング情報を確認できます。
$ docker container port my-nginx
80/tcp -> 0.0.0.0:8000
80/tcp -> :::8000
試し終わったら、my-nginx
コンテナを削除しておきましょう。
$ docker container rm -f my-nginx