Docker コンテナーでポートをマップする方法

PHPz
リリース: 2023-04-18 15:53:15
オリジナル
9517 人が閲覧しました

Docker は、開発者がこの優れたツールを使用して、ローカル、クラウド、またはモバイル デバイス上であらゆるアプリケーションを迅速にパッケージ化、配布、実行できるオープン ソースのアプリケーション コンテナ エンジンです。 Dockerの最大の特徴は、実行中のコンテナを異なるホストに素早くデプロイでき、環境の一貫性が保たれることです。 Docker は優れたパフォーマンスと使いやすさにより、クラウド コンピューティング、DevOps、マイクロサービスなどの分野で広く使用されています。この記事では、Docker コンテナのポート マッピングについて紹介します。

  1. Docker コンテナのポート マッピング

Docker コンテナ内の各サービスは、ポート番号を占有する必要があります。コンテナ内で実行されているサービスが外部システムと通信する必要がある場合、このポート番号をホスト上のポートにマップする必要があります。このプロセスはポート マッピングと呼ばれます。

Docker では、docker run コマンドを使用してコンテナーを起動し、ポート マッピング パラメーターを指定できます。たとえば、Web サービスがコンテナ内で実行されており、リスニング ポートが 8080 であると仮定すると、次のコマンドを使用して、コンテナ内の 8080 ポートをホストの 8000 Port:

docker run -p 8000:8080 my-web-service
ログイン後にコピー

このコマンドのパラメータ -p 8000:8080 は、コンテナ内の 8080 ポートをホストの ## にマッピングすることを意味します。 #8000ポート。最後のパラメータ my-web-service は、実行する Docker イメージを指定します。

    複数のポートのマッピング
コンテナ内で実行されているサービスが複数のポートを公開する必要がある場合は、

-p パラメーターを追加することで実行できます。複数回のマッピング。たとえば、コンテナ内で実行されているサービスが 2 つのポート 80808081 を同時にリッスンする必要があると仮定すると、次のコマンドを使用して、これら 2 つのポートを異なるポートにマッピングできます。ホスト上のポート:

docker run -p 8000:8080 -p 8001:8081 my-web-service
ログイン後にコピー
このコマンドのパラメータ

-p 8000:8080は、コンテナ内の8080ポートを8000##にマッピングすることを意味します。 # ホストのポート、パラメータ-p 8001:8081 は、コンテナ内の 8081 ポートをホスト上の 8001 ポートにマッピングすることを意味します。

ローカル IP へのバインド
  1. デフォルトでは、Docker コンテナによってマップされたポートは、ホストのすべてのネットワーク カード インターフェイスにバインドされます。特定の IP アドレスへのマッピングを指定する場合は、
-p

パラメーター形式を使用できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">docker run -p IP:HOST_PORT:CONTAINER_PORT my-web-service</pre><div class="contentsignin">ログイン後にコピー</div></div> ここで、

IP

はマッピングされるローカル IP を指します。アドレス、HOST_PORT はホスト上のポート番号、CONTAINER_PORT はコンテナ内のサービスが実際にリッスンするポート番号です。

UDP ポート マッピング
  1. TCP ポートとは異なり、UDP ポートは
-p

パラメータ形式を使用してマッピングする必要があります。たとえば、次のコマンドを使用して、コンテナ内の UDP ポート 8080 をホストの UDP ポート 8000 にマップできます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">docker run -p 8000:8080/udp my-udp-service</pre><div class="contentsignin">ログイン後にコピー</div></div>

ランダム ポートマッピング
  1. 場合によっては、コンテナ内のポートをホストの固定ポートにマップする必要がない場合、
-P

パラメータを使用してランダムを指定できます。ポートマッピング。たとえば、次のコマンドを使用してサービス ポートを開始し、自動的にマッピングできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">docker run -P my-web-service</pre><div class="contentsignin">ログイン後にコピー</div></div> このコマンドのパラメータ

-P

は、コンテナ内のすべてのポートをランダムなポートに自動的にマッピングすることを意味します。ホストのポート上で。 Docker は、空いているホスト ポートをランダムに選択し、コンテナ内のサービスのポートをそれにマッピングします。

マップされたポートの表示
docker ps

コマンドを使用して、実行中のコンテナーとそのマップされたポートを表示できます。たとえば、次のコマンドを使用すると、実行中のすべてのコンテナとそのマップされたポートを一覧表示できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">docker ps --format &quot;table {{.ID}}\t{{.Names}}\t{{.Ports}}&quot;</pre><div class="contentsignin">ログイン後にコピー</div></div>このコマンドは、各コンテナの ID、名前、およびマップされたポート番号を表示します。

Docker ポート マッピングは、コンテナとホストの間に双方向のデータ送信のためのネットワーク インターフェイスを作成することです。ポート マッピングを構成するときは、不要なトラブルを避けるために、ネットワーク セキュリティの問題とポートの競合に注意を払う必要があります。この記事が読者が Docker のポート マッピングとネットワーク構成を理解するのに役立つことを願っています。

以上がDocker コンテナーでポートをマップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート