ホームページ  >  記事  >  運用・保守  >  Docker の 4 つのネットワーク モードの違いは何ですか?

Docker の 4 つのネットワーク モードの違いは何ですか?

WBOY
WBOYオリジナル
2022-02-23 11:45:355272ブラウズ

相違点: 1. ホスト モードのコンテナとホストは「ネットワーク ネームスペース」を共有します; 2. コンテナ モードで作成されたコンテナは、指定されたコンテナと IP およびポート範囲を共有します; 3. なしモードは終了しますコンテナのネットワーク機能 4. ブリッジのデフォルト モードでは、各コンテナに IP が割り当てられます。

Docker の 4 つのネットワーク モードの違いは何ですか?

このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

##4 つの Docker ネットワーク モードの違いは何ですか

#1. 4 つのネットワーク モード

Docker の 4 つのネットワーク モードの違いは何ですか?

2. 実装原則

Docker は Linux ブリッジングを使用して、ホスト上の Docker コンテナ ブリッジ (docker0) を仮想化します。 Docker ブリッジのネットワーク セグメントには、Container-IP と呼ばれる IP アドレスがコンテナに割り当てられ、Docker ブリッジは各コンテナのデフォルト ゲートウェイになります。同じホスト内のコンテナはすべて同じネットワーク ブリッジに接続されているため、コンテナはコンテナの Container-IP

Docker ブリッジを介して直接通信できます。Docker ブリッジはホストによって仮想化されており、実際には存在しません。ネットワーク デバイスはアドレス指定できません。これは、外部ネットワークが直接 Container-IP を介してコンテナにアクセスできないことも意味します。コンテナーに外部からアクセスできるようにする必要がある場合は、コンテナーのポートをホストにマップ (ポート マッピング) できます。つまり、docker run がコンテナーを作成するときに -p または -P パラメーターを通じて有効にし、[ホスト IP] を使用します。 ] コンテナにアクセスする場合: [コンテナ ポート] コンテナにアクセスします

1.ホスト モード

コンテナの起動時にホスト モードを使用すると、コンテナは起動しません。独立したネットワーク ネームスペースを取得します。代わりに、ネットワーク ネームスペースをホストと共有します。コンテナは、独自のネットワーク カードを仮想化したり、独自の IP を構成したりせず、ホストの IP とポートを使用します。

コンテナホスト モードを使用すると、ホストを直接使用できます。ホストの IP アドレスは外部と通信します。コンテナ内のサービス ポートは、NAT なしでホストのポートを使用することもできます。ホストの最大の利点は、ネットワーク パフォーマンスが向上することです。ただし、Docker ホストで既に使用されているポートは再度使用できません。ネットワークの分離が良好ではありません。

2.コンテナ モード

作成されたコンテナは作成されません独自のネットワーク カードを使用し、独自の IP を構成しますが、指定されたコンテナと通信します。 共有 IP、ポート範囲

このモードでは、新しく作成されたコンテナがネットワーク ネームスペースを既存のコンテナと共有するのではなく、既存のコンテナと共有することを指定します。ザ・ホスト。同様に、ネットワークとは別に、2 つのコンテナはファイル システムやプロセス リストなどの他の側面でも分離されています。 2 つのコンテナのプロセスは、ネットワーク カード デバイスを介して通信できます

#3.None モード

#このモードでは、コンテナのネットワーク機能がオフになります

Use none モード。Docker コンテナには独自のネットワーク名前空間がありますが、Docker コンテナに対してネットワーク構成は実行されません。つまり、この Docker コンテナにはネットワーク カード、IP、ルーティングなどの情報がありません。 Docker コンテナにネットワーク カードを追加したり、IP を設定したりする必要があります。

このネットワーク モードでは、コンテナには lo ループバック ネットワークのみがあり、他のネットワーク カードはありません。 none モードは、コンテナーの作成時に --network=none を介して指定できます。このタイプのネットワークはインターネットに接続できません。閉じたネットワークにより、コンテナのセキュリティを確保できます。

ネットワークがない場合、セキュリティは非常に高くなります。データは安全に保存され、攻撃されることはありません

4.ブリッジ モード (デフォルト)

このモードでは、各コンテナーに IP を割り当てて設定し、docker0 ブリッジとアソシエーションを介してコンテナーを docker0 仮想ブリッジに接続します。 iptables nat テーブル設定とホストの間

Docker プロセスが開始すると、docker0 という名前の仮想ブリッジがホスト上に作成され、このホスト上で開始された Docker コンテナがこの仮想ブリッジ上位に接続します。仮想ブリッジは物理スイッチと同様に機能するため、ホスト上のすべてのコンテナーはスイッチを介してレイヤー 2 ネットワークに接続されます。

docker0 サブネットからコンテナーに IP を割り当て、docker0 を設定します。 IP アドレスはコンテナのデフォルト ゲートウェイです。ホスト上に仮想ネットワーク カードの veth ペア デバイスのペアを作成します。Docker は、新しく作成されたコンテナーに veth ペア デバイスの一方の端を配置して eth0 (コンテナーのネットワーク カード) という名前を付け、もう一方の端は同様の名前でホスト内に配置します。 like vethxxx. このネットワーク デバイスに名前を付けて、docker0 ブリッジに追加します。 brctl show コマンドを使用して表示できます

ブリッジ モードは docker のデフォルトのネットワーク モードであり、-net パラメータを記述しない場合はブリッジ モードになります。 docker run -p を使用すると、docker は実際に iptables で DNAT ルールを作成し、ポート転送機能を実装します。 iptables -t nat -vnL を使用すると、

概要

ホスト: ネットワーク名前空間/ネットワーク プロトコル スタックをホスト、IP 共有、およびポートと共有します。

コンテナ: 複数のコンテナがネットワーク名前空間を共有し、複数のコンテナが共通の IP とポート範囲を共有します

なし: 自己完結型スペース、ネットワーク カード、ネットワーク接続は不要

ブリッジ: ブリッジ、デフォルト モード。ネットワーク モードを指定せずにコンテナを作成します。このモードはデフォルトで使用され、コンテナは Veth ペアを介して docker0 ブリッジに接続され、ブリッジはコンテナに IP を割り当て、docker0 は「LAN」コンテンツとして使用されます サーバーのゲートウェイは最終的にホスト ネットワーク カードと通信します 同時に、コンテナ IP/ポートはホスト ネットワーク カードとの対話用の IPtables ルールによってマッピングされます

推奨学習: 「docker ビデオ チュートリアル

以上がDocker の 4 つのネットワーク モードの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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