コンテナ テクノロジの人気と発展により、Docker はコンテナ化テクノロジのリーダーとなり、多くの開発者や運用保守担当者にとって不可欠なツールになりました。実際のアプリケーションでは、Docker のサービスを外部ネットワークに公開してアクセスする必要があることがよくありますが、この場合、Docker のネットワーク構成とポート マッピングを使用する必要があります。
1. Docker ネットワーク構成
Docker ネットワークには、ブリッジ ネットワーク、ホスト ネットワーク、なしネットワーク、カスタム ネットワークの 4 種類があります。サービスの開発とデプロイに Docker を使用する場合、通常はカスタム ネットワーク タイプを使用します。これにより、コンテナ間の通信をより適切に制御できます。
Docker のカスタム ネットワーク構成には、通常、ネットワーク名、ネットワーク ドライバー、サブネット IP、ゲートウェイなどが含まれます。その中で、ネットワーク ドライバーには、ブリッジ、オーバーレイ、macvlan などのタイプが含まれており、選択できます。複数のコンテナーが相互にアクセスする必要がある場合は、コンテナーがコンテナー名またはコンテナー ID を介して相互に通信できるように、それらのコンテナーが同じカスタム ネットワーク内に存在する必要があります。
次に、Docker でカスタム ネットワークを作成する方法と、指定したネットワークにサービス コンテナを追加する方法を紹介します。
Docker コマンド ライン ツールでコンテナーを作成するときにネットワーク名を指定することで、カスタム ネットワークを作成できます。具体的なコマンドは次のとおりです。
docker network create --driver bridge <network_name>
ここで、<network_name>
は、作成するネットワークの名前です。
指定したネットワークにコンテナを追加する必要がある場合は、docker run コマンドの --network オプションを使用できます。 。具体的なコマンドは次のとおりです:
docker run --name <container_name> --network <network_name> <image_name>
このうち、 <container_name>
はコンテナ名、 <network_name>
は追加するネットワークの名前、 <image_name>
は、コンテナー イメージの名前です。
2. Docker ポート マッピング
Docker コンテナ内のサービスは、デフォルトではコンテナ内でのみアクセスできます。外部ネットワークが IP アドレスおよび IP アドレスを介してサービスにアクセスできるようにする必要がある場合は、ポート番号、ポート マッピングを行う必要があります。通常、Docker のポート マッピングには、静的ポート マッピングと動的ポート マッピングの 2 つの方法があります。
静的ポート マッピングは通常、コンテナーの起動時に設定されます。ホスト上のポート番号を表す
docker run -p <host_port>:<container_port> <image_name>
たとえば、ホストの 8080 ポートをコンテナの 80 ポートにマップします:
docker run -p 8080:80 nginx
この場合、http: / にアクセスできます。 /localhost:8080
コンテナ内のサービスにアクセスします。
動的ポート マッピングは、通常、ホスト上の空いているポートを自動的に割り当てることによって実行されます。 -P または -p
docker run -P <image_name>
または:
docker run -p <container_port> <image_name>
たとえば、-P オプションを使用して Tomcat コンテナを起動すると、Docker はホスト上の空いているポートをマッピング用に自動的に割り当てます。 ##
docker run -d -P tomcat
docker ps -a コマンドを使用してマップされたポート番号を表示し、ホスト IP アドレスと割り当てられたポート番号にアクセスすることでブラウザ経由でサービスにアクセスできます。 。
以上が外部ネットワークからDocker内のサービスにアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。