Docker コンテナ間の相互接続と通信には 3 つの方法があります。
1. Docker内部ネットワーク Docker 独自のネットワーク スタックが関係します。 Docker をインストールすると、システムはコンテナとホストを接続するために使用される docker0 という新しいネットワーク インターフェイスを作成します。IP 範囲は 172.16 ~ 172.30 です。 各 Docker コンテナには、このインターフェース上の IP アドレスが割り当てられます。 Docker がコンテナを作成するたびに、相互接続されたネットワーク インターフェースのセットが作成されます。一方の端はコンテナ内の eth0 インターフェースで、もう一方の端はホスト上で veth で始まる名前が付けられます。 各 veth インターフェースを docker0 ブリッジにバインドすることにより、Docker はホストとすべての Docker コンテナによって共有される仮想サブネットを作成します。 コンテナとホスト間の通信接続を実現します。veth インターフェースはコンテナが実行中のときのみ存在することに注意してください。 内部ネットワークを使用して相互接続を実現する場合の欠点:
2. Dockerネットワーク コンテナ間の接続はネットワークを使用して作成されます。 コンテナが相互に通信するための独自のネットワークをユーザーが作成できるようにします。 異なるホスト間で通信でき、ネットワーク構成がより柔軟になります。 接続を更新せずにコンテナを停止、起動、または再起動できます。 事前にコンテナを作成して接続する必要はなく、コンテナの実行順序を気にする必要もありません。ネットワーク内でコンテナの名前解決と検出が可能です。 docker compose および swarm と統合されています。 docker ネットワーク内で起動されたコンテナは、このネットワーク内で実行されているすべてのコンテナを認識します。 これらのコンテナのアドレスを/etc/hostsファイルを通じてローカルDNSに保存します。 コンテナが再起動されると、その IP アドレスは /etc/hosts ファイル内で自動的に更新されます。 テスト中に、/etc/hosts ファイルには他のコンテナの新しいアドレスがないように見えましたが、相互に ping を実行できることが分かりました。 コンテナは複数のネットワークに同時に参加できるため、非常に複雑なネットワーク モデルを作成できます。
3. Dockerリンク コンテナの名前はリンク プロセス中に参照する必要があり、同じホスト マシン上でのみ機能します。 docker run でコンテナを起動するときに、--link パラメータを使用して 2 つのコンテナ間にクライアント サーバー リンクを作成します。 2 つのパラメータが必要です。1 つはリンク コンテナーの名前、もう 1 つはリンクのエイリアス (--link redis:db) です。 リンクされたコンテナーはサービスであり、リンクによりサービス コンテナーはクライアント コンテナーと通信できるようになります。 クライアント コンテナーはサービス コンテナーの任意のパブリック ポートに直接アクセスできるため、サービス コンテナーのポートをローカル ホストに公開する必要がなく、比較的安全です。 複数のクライアント コンテナーを同じサービス コンテナーにリンクすることも、--link を複数回指定して複数のサービス コンテナーにリンクすることもできます。 Docker は、コンテナの /etc/hosts ファイルと、リンク情報を含む環境変数にリンク情報を書き込みます。 どのようなアプローチを採用しても、次のコンポーネントを含む Web アプリケーション スタックを作成できます。
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQLデータベースバックアップのさまざまな実装方法の概要
>>: Vue+Openlayer で select を使用して要素を選択する実装コード
Centos のサーバー側への適用がますます普及するにつれて、Centos7 もますます使用されるよ...
データ移行は、MySQL から ClickHouse にインポートする必要があります。概要プランは以...
目次1. データベースの制約1.1 はじめに1.2 制約の種類1.3 ヌルでない1.4 ユニーク1....
ここでは、フォーム要素とフォーム送信に関する知識を紹介します。フォーム要素フォーム要素の DOM イ...
この記事では、アンカー配置を実現するためのVue +要素UIの具体的なコードを例として紹介します。具...
この記事の例では、モバイル紅包雨機能ページを実現するためのHTMLの具体的なコードを共有しています。...
Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...
使用シナリオ: Alibaba Cloud を使用しており、データディスクを別途購入しました (大容...
データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...
<br />セマンティクス化は一言で説明することはできないし、まだ公式かつ厳密な定義もあ...
この記事では、例を使用して、MySQL クエリ条件の一般的な使用方法を説明します。ご参考までに、詳細...
目次1. ルータビュー2. ルータリンク3. リダイレクト4. ルーティングエイリアス5. ルーティ...
プロセス構造図Nginx はマルチプロセス構造です。マルチプロセス構造は、次のような Nginx の...
CSS 変換は便利ですが、背景画像にはまだ適用されていません。この投稿では、背景画像を回転させたい場...
テンプレート <el-table :data="データリスト"> &...