Dockerのbridgeネットワーク入門:基本からハンズオンまで

はじめに

Dockerを使ってコンテナを動かすとき、重要な概念の一つが「ネットワーク」です。
その中でも最も基本的でよく使われるのが bridgeネットワーク です。

本記事では、bridgeネットワークの仕組み・用途・作り方をわかりやすく解説し、実際に自分で触って理解できるハンズオンを行います。


bridgeネットワークとは?

bridge(ブリッジ)ネットワークは、Dockerのデフォルトネットワークタイプの一つで、同一ホスト上のコンテナ同士を接続する仮想ネットワークです。

Dockerをインストールすると、自動的にbridgeという名前のネットワークが作成されます:

$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
abcd1234efgh   bridge    bridge    local

このネットワークはホスト内部で仮想スイッチのように動作し、同一ネットワーク内のコンテナ間通信を可能にします。


bridgeネットワークの特徴

  • 同一ホスト内の通信専用(他ホストのコンテナとは通信できない)
  • 名前解決(コンテナ名で通信可能)
    同じネットワークに属するコンテナ同士は、IPではなくコンテナ名で通信できます。
  • 独立した仮想ネットワークを構築可能
    独自にbridgeネットワークを作成すれば、異なるアプリケーションをネットワーク的に分離できます。

ハンズオン:bridgeネットワークを実際に作って使う

ここからは、実際に手を動かしてbridgeネットワークを体験してみましょう。

ステップ1:独自のbridgeネットワークを作成

まず、mybridgeというカスタムネットワークを作成します。

$ docker network create mybridge

確認してみましょう:

$ docker network ls
NETWORK ID     NAME       DRIVER    SCOPE
abcd1234efgh   bridge     bridge    local
efgh5678ijkl   mybridge   bridge    local

これで、デフォルトとは別のbridgeネットワークができました。


ステップ2:ネットワークに属するコンテナを起動

mybridgeネットワークに属するコンテナを2つ作ります。

# 1台目コンテナ
$ docker run -dit --name app1 --network mybridge alpine sh

# 2台目コンテナ
$ docker run -dit --name app2 --network mybridge alpine sh

コンテナが起動したら、app1コンテナに入ります。

$ docker exec -it app1 sh

中でpingコマンドを使って通信してみましょう。

/ # ping -c 3 app2
PING app2 (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.091 ms
64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.064 ms
64 bytes from 172.18.0.3: seq=2 ttl=64 time=0.075 ms

同じネットワーク内にいるため、コンテナ名で通信できています。


ステップ3:ネットワークの詳細を確認

作成したネットワークの設定を見てみましょう。

$ docker network inspect mybridge

出力の中には、以下のような情報が含まれています:

  • Subnet(サブネット)
  • Gateway
  • 接続中のコンテナ情報
  • ドライバ(bridge)

これにより、Dockerが内部的にどのように仮想ネットワークを構築しているかがわかります。


ステップ4:ネットワークを削除

使用が終わったらネットワークを削除してクリーンアップします。

$ docker network rm mybridge

まとめ

  • bridgeネットワークはDockerのデフォルトネットワークタイプ
  • 同一ホスト上のコンテナ間通信に最適
  • 独自のbridgeネットワークを作ることで名前解決分離環境の構築が可能
  • docker network create / inspect / rm でネットワーク管理を理解できる

次のステップ

  • Docker Composeでnetworksセクションを定義し、複数コンテナを同一bridgeネットワークで接続する
  • overlayネットワークでマルチホスト通信に挑戦
  • macvlanを使って物理ネットワークと統合

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です