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 を使用して要素を選択する実装コード
今日、mysql の公式サイトから mysql-5.7.18-winx64.zip をダウンロードし...
ステップ1: サードパーティの信頼できるSSL証明書に署名するAlibaba Cloud で直接、無...
序文: 最近の医療モバイル プロジェクトに基づいて、Vue はさまざまな画面のさまざまな画面サイズに...
空のリンク:つまり、ターゲット エンドポイントとのリンクはありません。フォーマット <a hr...
httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...
ファイルコントロールを美しくする理由は何ですか?他の子供たちはみんなきちんとしたきれいな服を着ている...
著者は1年以上マイクロフロントエンドプロジェクトに取り組んできました。チームは10個のマイクロアプリ...
今日は、興味深いトピックについてお話ししましょう。データベースとテーブルを分割することを検討する前に...
MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...
Web ページでは、基本的に <input type="file">...
MySQLトリガーの簡単な例文法CREATE TRIGGER <トリガー名> -- トリ...
シナリオ1. ID番号のフィールドを備えた市民システムを維持する2. ビジネス コードでは、重複する...
1. 仮想マシンバージョン15.5.1をダウンロードする公式サイトから直接最新バージョンをダウンロー...
マージントップの崩壊とはmargin-top の崩壊は、CSS ボックス モデルで発生する現象です。...
まず、404 とソフト 404 とは何でしょうか? 404: 簡単に言えば、ユーザーが存在しないペー...