Docker は、開発者がこの優れたツールを使用して、ローカル、クラウド、またはモバイル デバイス上であらゆるアプリケーションを迅速にパッケージ化、配布、実行できるオープン ソースのアプリケーション コンテナ エンジンです。 Dockerの最大の特徴は、実行中のコンテナを異なるホストに素早くデプロイでき、環境の一貫性が保たれることです。 Docker は優れたパフォーマンスと使いやすさにより、クラウド コンピューティング、DevOps、マイクロサービスなどの分野で広く使用されています。この記事では、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 つのポート
8080 と
8081 を同時にリッスンする必要があると仮定すると、次のコマンドを使用して、これら 2 つのポートを異なるポートにマッピングできます。ホスト上のポート:
docker run -p 8000:8080 -p 8001:8081 my-web-service
-p 8000:8080は、コンテナ内の
8080ポートを
8000##にマッピングすることを意味します。 # ホストのポート、パラメータ-p 8001:8081
は、コンテナ内の 8081
ポートをホスト上の 8001
ポートにマッピングすることを意味します。
パラメーター形式を使用できます。 <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 を指します。アドレス、HOST_PORT
はホスト上のポート番号、CONTAINER_PORT
はコンテナ内のサービスが実際にリッスンするポート番号です。
パラメータ形式を使用してマッピングする必要があります。たとえば、次のコマンドを使用して、コンテナ内の 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>
パラメータを使用してランダムを指定できます。ポートマッピング。たとえば、次のコマンドを使用してサービス ポートを開始し、自動的にマッピングできます。 <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>
このコマンドのパラメータ
は、コンテナ内のすべてのポートをランダムなポートに自動的にマッピングすることを意味します。ホストのポート上で。 Docker は、空いているホスト ポートをランダムに選択し、コンテナ内のサービスのポートをそれにマッピングします。
コマンドを使用して、実行中のコンテナーとそのマップされたポートを表示できます。たとえば、次のコマンドを使用すると、実行中のすべてのコンテナとそのマップされたポートを一覧表示できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"</pre><div class="contentsignin">ログイン後にコピー</div></div>
このコマンドは、各コンテナの ID、名前、およびマップされたポート番号を表示します。
Docker ポート マッピングは、コンテナとホストの間に双方向のデータ送信のためのネットワーク インターフェイスを作成することです。ポート マッピングを構成するときは、不要なトラブルを避けるために、ネットワーク セキュリティの問題とポートの競合に注意を払う必要があります。この記事が読者が Docker のポート マッピングとネットワーク構成を理解するのに役立つことを願っています。
以上がDocker コンテナーでポートをマップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。