Dockerのポート設定について理解する

IT・プログラミング

Dockerを使用すると、アプリケーションをコンテナとして分離して実行できますが、これらのコンテナが外部と通信するためにはポートの設定が重要です。この記事では、Dockerのホストとコンテナのポートについて詳しく説明します。

Dockerコンテナのポートとは

コンテナは、アプリケーションを実行する環境であり、アプリケーションが外部と通信するためには特定のポートを開放する必要があります。ポートは、ネットワーク上でデータの送受信を行うためのエンドポイントです。

  • コンテナポート: コンテナ内でアプリケーションがリッスンしているポート。
  • ホストポート: ホストマシン上でコンテナにマッピングされるポート。

ポートのマッピング

コンテナを起動する際、ホストとコンテナのポートをマッピングすることで、外部からコンテナにアクセスできるようになります。このマッピングは、-pオプションを使って指定します。

docker run -d -p <ホストポート>:<コンテナポート> <イメージ名>

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

docker run -d -p 8080:80 nginx

このコマンドでは、Nginxのコンテナを起動し、ホストのポート8080にリクエストを送ると、コンテナのポート80に転送されます。

複数のポートマッピング

複数のポートをマッピングする場合、-pオプションを複数回指定できます。

docker run -d -p 8080:80 -p 443:443 <イメージ名>

このコマンドでは、HTTP(ポート80)とHTTPS(ポート443)をそれぞれホストのポート8080と443にマッピングします。

ホストとコンテナのIPアドレス

コンテナは、Dockerが管理する仮想ネットワーク上で実行され、独自のIPアドレスを持っています。しかし、ホストのIPアドレスでコンテナにアクセスする場合、マッピングしたホストポートを使用します。コンテナ内部から他のコンテナにアクセスする場合は、コンテナ名やIPアドレスを使用できます。

ポートの確認

現在稼働中のコンテナとそのポートマッピングを確認するには、以下のコマンドを使用します。

docker ps

出力には、ホストポートとコンテナポートのマッピングが表示されます。

まとめ

Dockerのホストとコンテナのポートの理解は、アプリケーションのネットワーク通信を適切に設定するために重要です。ポートマッピングを活用することで、外部からコンテナにアクセスしたり、複数のサービスを同時に実行したりできます。

タイトルとURLをコピーしました