Docker超入門:Dockerのネットワークの全体像:NIC・仮想インターフェース・ブリッジの関係

 Dockerを使ってコンテナを動かすとき、裏側では「ネットワークの仕組み」がしっかりと組み立てられています。特に重要なのが、NIC(ネットワークインターフェースコントローラ)仮想インターフェース、そしてブリッジ接続の3つです。ここではそれぞれの役割を整理しながら、Dockerのデフォルトである「ブリッジネットワークモード」の全体像をわかりやすく解説します。

NIC (Network Interface Controller)

 NICはコンピュータがネットワークと接続するためのハードウェアデバイスです。Linuxシステムでは eth0eth1、無線であれば wlan0 といった名前で認識されます。Dockerを動かすホストマシンも、まずは物理NICを通じてLANやインターネットに接続しています。

項目説明
NICとはネットワークに接続するためのハードウェア
Linuxでの名称eth0, eth1, wlan0 など
Dockerでの役割ホストOSが外部ネットワークと通信する窓口

ブリッジ接続とは

 ブリッジは、異なるネットワークをつなぐ仕組みで、あたかも1つのネットワークに見せかけます。これには2種類があります。

種類説明
ソフトウェア的なブリッジOSのカーネル機能で提供される。Linuxの bridge モジュールなど。Dockerの docker0 もここに該当。
ハードウェア的なブリッジ物理スイッチやルーターなどで実現。データセンターのネットワーク機器が典型例。

 Dockerはソフトウェア的なブリッジを利用して、コンテナ同士やホストとコンテナをつないでいます。

Dockerのブリッジネットワークモード

 Dockerにはいくつかのネットワークモードがありますが、もっとも一般的でデフォルトのものが ブリッジモード です。このモードでは以下の要素が登場します。

要素説明
docker0(ブリッジ)Dockerデーモン起動時に自動で作成される仮想ブリッジ。ホストのNICとコンテナの仮想インターフェースをつなぐ役割を持つ。
コンテナのeth0(仮想インターフェース)各コンテナが持つ独自のNIC。ホストOSが生成した仮想NICに接続され、docker0ブリッジ経由で通信する。
プライベートIPアドレスコンテナごとにDockerが割り当てる。例:172.17.x.x のようなアドレスがよく使われる。
NATコンテナから外部へ通信するときは、ホストのIPアドレスに変換されて外へ出る。外部から直接コンテナへはアクセスできない。

通信の流れを整理

  1. ホストの物理NIC(eth0など)がLANやインターネットに接続
  2. Dockerが自動で作る docker0 ブリッジ がホストとコンテナを仲介
  3. 各コンテナは独自の 仮想NIC(eth0) を持ち、docker0にぶら下がる。
  4. コンテナ同士はプライベートIPで直接通信可能
  5. 外部への通信は NAT を通してホストのIPから発信される。

図で理解するDockerネットワーク

コンテナ・ブリッジ・NICの関係が直感的に理解できます。

まとめ

Dockerのブリッジネットワークモードでは、

  • ホストのNIC が外部との通信を担い、
  • docker0ブリッジ がコンテナとホストをつなぎ、
  • 各コンテナの仮想インターフェース が内部の通信を担当しています。

 さらにNATによって、外部からは見えないプライベートIPを持つコンテナが、ホストのIPを借りて外に出ていきます。この仕組みによって、コンテナは安全かつ柔軟にネットワークへ接続できるようになっているのです。