Docker 4つのネットワークモード

Docker 4つのネットワークモード

序文

  • DockerはLinuxブリッジを使用し、ホストマシン上のDockerコンテナブリッジ(docker0)を仮想化します。Dockerがコンテナを起動すると、Dockerブリッジのネットワークセグメント(Container-IP)に従ってIPアドレスがコンテナに割り当てられ、Dockerブリッジは各コンテナのデフォルトゲートウェイ。同じホスト内のコンテナはすべて同じネットワークブリッジに接続されているため、コンテナはコンテナのContainer-IPを介して直接通信できます。
  • Dockerブリッジはホストによって仮想化されており、実際のネットワークデバイスではありません。外部ネットワークはアドレス指定できません。これは、外部ネットワークが直接Container-IP経由でコンテナにアクセスできないことも意味します。コンテナーが外部アクセスにアクセスできるようにしたい場合は、コンテナーポートをホストホストにマップできます(ポートマッピング)。つまり、コンテナーの作成時に-pまたは-Pパラメーターによってdocker runが有効になり、コンテナーにアクセスするときに[ホストIP]が有効になります。 【コンテナポート】コンテナにアクセスします。

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

Dockerネットワークモード 構成 解説
ホストモード –net = host コンテナーとホストはネットワーク名前空間を共有します。
コンテナモード –net = container:NAME_or_ID コンテナーと別のコンテナーは、ネットワーク名前空間を共有します。kubernetesのポッドは、ネットワーク名前空間を共有する複数のコンテナです。
なしモード –net = none コンテナには独立したネットワーク名前空間がありますが、vethペアとブリッジ接続の割り当て、IPの構成などのネットワーク設定はありません。
ブリッジモード –net = bridge (デフォルトはこのモードです)

2.ホストモード

  • コンテナーの起動時にホストモードが使用されている場合、コンテナーは独立したネットワーク名前空間を取得せず、ホストマシンとネットワーク名前空間を共有します。コンテナは、独自のネットワークカードを仮想化したり、独自のIPを構成したりするのではなく、ホストのIPとポートを使用します。ただし、ファイルシステムやプロセスリストなどのコンテナーの他の側面は、ホストから分離されています。
  • ホストモードを使用するコンテナは、ホストのIPアドレスを直接使用して外部と通信できます。コンテナ内のサービスポートもホストのポートを使用できます。NATは不要です。ホストの最大の利点は、ネットワークパフォーマンスが向上することですが、Dockerホストはすでに使用されているポートは使用できなくなり、ネットワークの分離は良好ではありません。

ここに画像の説明を挿入

3.コンテナーモード

  • このモードは、新しく作成されたコンテナーが、ホストではなく既存のコンテナーとネットワーク名前空間を共有することを指定します。新しく作成されたコンテナーは、独自のネットワークカードを作成して独自のIPを構成するのではなく、指定されたコンテナーとIPおよびポート範囲を共有します。同様に、ネットワークに加えて、ファイルシステムやプロセスリストなどの2つのコンテナーが分離されます。2つのコンテナーのプロセスは、loネットワークカードデバイスを介して通信できます。

ここに画像の説明を挿入

4.なしモード

  • noneモードでは、Dockerコンテナーには独自のネットワーク名前空間がありますが、Dockerコンテナーのネットワーク構成は実行されません。つまり、このDockerコンテナには、ネットワークカード、IP、ルーティング、その他の情報が含まれていません。ネットワークカードを追加し、DockerコンテナーのIPを自分で構成する必要があります。
  • このネットワークモードでは、コンテナーにはloループバックネットワークのみがあり、他のネットワークカードはありません。noneモードは、コンテナーの作成時に–network = noneで指定できます。このタイプのネットワークを接続する方法はなく、閉じたネットワークはコンテナのセキュリティを保証できます。

ここに画像の説明を挿入

5.ブリッジモード

  • Dockerプロセスが開始すると、docker0という名前の仮想ブリッジがホスト上に作成され、このホスト上で開始されたDockerコンテナーがこの仮想ブリッジに接続されます。仮想ブリッジは物理スイッチと同様に機能するため、ホスト上のすべてのコンテナーはスイッチを介してレイヤー2ネットワークに接続されます。
  • docker0サブネットからコンテナーにIPを割り当て、docker0 IPアドレスをコンテナーのデフォルトゲートウェイとして設定します。ホスト上に仮想ネットワークカードのvethペアデバイスのペアを作成します。Dockerはvethペアデバイスの一方の端を新しく作成されたコンテナーに配置し、それにeth0(コンテナーのネットワークカード)という名前を付け、もう一方の端はvethxxxのような同様の名前でホストに配置されます名前を付けて、このネットワークデバイスをdocker0ブリッジに追加します。brctl showコマンドを使用して表示できます。
  • ブリッジモードは、Dockerのデフォルトのネットワークモードです。–netパラメーターを記述しない場合は、ブリッジモードです。docker run -pを使用すると、dockerは実際にiptablesでDNATルールを作成し、ポート転送機能を実装しました。iptables -t nat -vnLを使用して表示できます。

ここに画像の説明を挿入

公開された140元の記事 ウォン称賛49 ビュー10000 +

おすすめ

転載: blog.csdn.net/double_happy111/article/details/105579483