docker runでport指定

docker runでport指定

docker run コマンドでポートを指定する方法について説明します。
Dockerコンテナのポートをホストマシンのポートにマッピングすることで、コンテナ内のサービスにアクセスできるようになります。
以下にその基本的な使い方を示します。

ポート指定の基本構文

docker run コマンドでポートを指定するには、-p または --publish オプションを使用します。
基本的な構文は次のとおりです。

docker run -p [ホストポート]:[コンテナポート] [イメージ名]

ここで、[ホストポート] はホストマシンのポート番号、[コンテナポート] はコンテナ内のポート番号、[イメージ名] は実行するDockerイメージの名前です。

例えば、コンテナ内のポート80をホストマシンのポート8080にマッピングする場合は、次のようにします。

docker run -p 8080:80 nginx

このコマンドは、nginx イメージを使用してコンテナを起動し、コンテナのポート80をホストのポート8080にマッピングします。
これにより、ブラウザで http://localhost:8080 にアクセスすることで、nginxサーバーに接続できます。

複数ポートの指定

複数のポートを指定する場合は、-p オプションを複数回使用します。
例えば、コンテナのポート80をホストのポート8080に、ポート443をホストのポート8443にマッピングするには、次のようにします:

docker run -p 8080:80 -p 8443:443 nginx

ポートの公開範囲

  • p オプションで指定したポートは、ホストマシンのネットワークインターフェースに公開されます。

もし特定のネットワークインターフェースにのみ公開したい場合は、ホストIP:ホストポート:コンテナポート の形式で指定できます。
例えば、ローカルIPアドレス 192.168.1.100 のみでポート8080を公開するには、次のようにします。

docker run -p 192.168.1.100:8080:80 nginx

バージョン指定

特定のDockerイメージのバージョンを指定する場合は、イメージ名の後にコロンとバージョンタグを追加します。
例えば、nginxの特定のバージョン1.21.0を使用するには、次のようにします。

docker run -p 8080:80 nginx:1.21.0

これで、Dockerコンテナのポートをホストマシンのポートにマッピングする方法がわかりました。
ポート指定を適切に行うことで、コンテナ内のアプリケーションにアクセスしやすくなります。