ホームページ  >  記事  >  運用・保守  >  外部ネットワークからDocker内のサービスにアクセスする方法

外部ネットワークからDocker内のサービスにアクセスする方法

PHPz
PHPzオリジナル
2023-04-19 14:12:445738ブラウズ

コンテナ テクノロジの人気と発展により、Docker はコンテナ化テクノロジのリーダーとなり、多くの開発者や運用保守担当者にとって不可欠なツールになりました。実際のアプリケーションでは、Docker のサービスを外部ネットワークに公開してアクセスする必要があることがよくありますが、この場合、Docker のネットワーク構成とポート マッピングを使用する必要があります。

1. Docker ネットワーク構成

Docker ネットワークには、ブリッジ ネットワーク、ホスト ネットワーク、なしネットワーク、カスタム ネットワークの 4 種類があります。サービスの開発とデプロイに Docker を使用する場合、通常はカスタム ネットワーク タイプを使用します。これにより、コンテナ間の通信をより適切に制御できます。

Docker のカスタム ネットワーク構成には、通常、ネットワーク名、ネットワーク ドライバー、サブネット IP、ゲートウェイなどが含まれます。その中で、ネットワーク ドライバーには、ブリッジ、オーバーレイ、macvlan などのタイプが含まれており、選択できます。複数のコンテナーが相互にアクセスする必要がある場合は、コンテナーがコンテナー名またはコンテナー ID を介して相互に通信できるように、それらのコンテナーが同じカスタム ネットワーク内に存在する必要があります。

次に、Docker でカスタム ネットワークを作成する方法と、指定したネットワークにサービス コンテナを追加する方法を紹介します。

  1. カスタム ネットワークの作成

Docker コマンド ライン ツールでコンテナーを作成するときにネットワーク名を指定することで、カスタム ネットワークを作成できます。具体的なコマンドは次のとおりです。

docker network create --driver bridge <network_name>

ここで、<network_name> は、作成するネットワークの名前です。

  1. 指定したネットワークにコンテナを追加する

指定したネットワークにコンテナを追加する必要がある場合は、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 つの方法があります。

  1. 静的ポート マッピング

静的ポート マッピングは通常、コンテナーの起動時に設定されます。ホスト上のポート番号を表す パラメーターと、コンテナー内のポート番号を表す パラメーターを使用して、これらをバインドできます。具体的なコマンドは次のとおりです:

docker run -p <host_port>:<container_port> <image_name>

たとえば、ホストの 8080 ポートをコンテナの 80 ポートにマップします:

docker run -p 8080:80 nginx

この場合、http: / にアクセスできます。 /localhost:8080 コンテナ内のサービスにアクセスします。

  1. 動的ポート マッピング

動的ポート マッピングは、通常、ホスト上の空いているポートを自動的に割り当てることによって実行されます。 -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 アドレスと割り当てられたポート番号にアクセスすることでブラウザ経由でサービスにアクセスできます。 。

3. 結論

ネットワーク構成とポート マッピングを通じて、Docker コンテナ内のサービスを外部ネットワークに公開してアクセスできます。 Docker ネットワーク構成とポート マッピングを実行するときは、コンテナ内のサービスが外部ネットワーク環境に公開されることを回避してセキュリティ リスクを回避するために、セキュリティに注意を払う必要があることに注意してください。

以上が外部ネットワークからDocker内のサービスにアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。