ホームページ > 運用・保守 > Docker > Docker がクロスホスト通信を実装する方法

Docker がクロスホスト通信を実装する方法

PHPz
リリース: 2023-04-10 15:04:29
オリジナル
2452 人が閲覧しました

Docker は現在最も人気のあるコンテナ化テクノロジの 1 つであり、アプリケーションをパッケージ化してデプロイする軽量の方法を提供します。実際のアプリケーションでは、アプリケーションの信頼性とスケーラビリティを向上させるために、複数のホスト間でコンテナを移行することが必要になることがよくあります。ただし、各ホストには独自のネットワーク環境があるため、ホスト間の通信が一般的な問題になります。この記事では、Docker を使用してクロスホスト通信を実現する方法を紹介します。

1. Docker ネットワーク モデル

Docker のネットワーク モデルには、ブリッジ、ホスト、オーバーレイの 3 つのネットワーク ドライバー タイプが含まれています。このうちブリッジは、Docker コンテナとホストが単一のネットワークを共有できるようにする最も一般的なものですが、ホスト間で通信したい場合は、ネットワーク ポート マッピングを通じてコン​​テナを公開する必要があります。ホスト モードはホスト ネットワークを直接使用するため、ポート マッピングのオーバーヘッドを回避できますが、コンテナ間のネットワーク分離は悪化します。オーバーレイ モードは分散ネットワークを実装するために使用され、複数の Docker ホスト間で通信できます。

2. Docker クロスホスト通信ソリューション

  1. ブリッジ ネットワーク ドライバーの使用

ブリッジ ネットワーク ドライバーを使用する場合は、ポート マッピングを使用する必要があります。クロスホスト通信を実現するためのホスト通信の具体的な手順は次のとおりです。

ステップ 1: 最初のホストでコンテナを実行し、使用するポートを公開します。

$ docker run -d --name container -p 8080:80 nginx
ログイン後にコピー

上記のコマンドでは、container という名前のコンテナを起動し、コンテナのポート 80 をホスト ポート 8080 にマッピングしました。

ステップ 2: 2 番目のホストで、curl を使用して、コンテナーによって公開されたポートにアクセスできるかどうかをテストします。

$ curl http://<第一台主机IP地址>:8080
ログイン後にコピー

上記のコマンドでは、curl ツールを使用して最初のホストの 8080 ポートにリクエストを行い、Nginx サーバーのデフォルトのウェルカム インターフェイスを取得します。

  1. オーバーレイ ネットワーク ドライバーの使用

オーバーレイ ネットワーク ドライバーを使用すると、複数の Docker ホストからコンテナーを直接接続できます。具体的な手順は次のとおりです。

ステップ 1: クラスター内の各ホストでオーバーレイ ネットワークを有効にします。

$ docker network create -d overlay my-overlay-network
ログイン後にコピー

上記のコマンドでは、各ホスト上に my-overlay-network という名前のオーバーレイ ネットワークを作成しました。

ステップ 2: コンテナーで Web サービスを実行し、オーバーレイ ネットワーク接続を使用します。

$ docker run -d --name web --network=my-overlay-network nginx
ログイン後にコピー

上記のコマンドでは、web という名前のコンテナーを起動し、my-overlay-network ネットワークに接続しました。

ステップ 3: 他のホストで、curl を使用して Web サービスにアクセスできるかどうかをテストします。

$ curl http://web
ログイン後にコピー

上記のコマンドでは、curl ツールを使用して Web ホストにリクエストを行い、Nginx サーバーのデフォルトのウェルカム インターフェイスを取得します。

3. 概要

コンテナ化テクノロジーは、現代ではアプリケーションを開発およびデプロイするための標準的な方法の 1 つとなっています。 Docker を使用してホスト間通信を実現することは、このプロセスでよく発生する問題です。この記事では、ブリッジおよびオーバーレイ ネットワーク ドライバーを使用してホスト間通信を実現するソリューションについて学びました。中でもオーバーレイネットワークドライバーは拡張性に優れており、分散アプリケーションの実装に適しています。

以上がDocker がクロスホスト通信を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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