このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Dockerコンテナのネットワークを理解する①(bridge・host・noneの違いと基本操作)

🌐 Dockerコンテナのネットワークを理解する①(bridge・host・noneの違いと基本操作)
Dockerを使っていると、「コンテナ同士がどうやって通信しているの?」「ネットワークって何?」という疑問を持つこと、ありますよね。
Dockerのネットワークは、コンテナ間通信を支える“裏方”の仕組みです。ここでは、Dockerが提供する3つのデフォルトネットワーク(bridge、host、none)と、ネットワークの基本操作について、わかりやすく解説していきます!
🧩 Dockerのネットワークの概要

Dockerをインストールすると、最初から 3つのネットワーク(bridge、host、none) が自動的に作成されます。
基本的に、新しいコンテナを起動するときにネットワークを指定しなければ、自動的に bridgeネットワーク に接続されます。
この仕組みにより、Dockerはコンテナ同士の通信をコントロールしたり、ネットワークを分離してセキュリティを保つことができます。
| ネットワーク名 | 説明 |
|---|---|
| bridge | デフォルトのネットワーク。新しいコンテナが自動的に接続される。コンテナ同士はこのネットワーク内で通信可能。 |
| host | ホスト(物理マシン)と同じネットワークを共有。ネットワークの隔離は行われない。 |
| none | ネットワークに接続しない。ネットワークを完全に遮断した状態。 |
🔌 仮想ネットワークとは?
Dockerは、コンテナを接続するために仮想ネットワークを作っています。
たとえば、WordPressコンテナがMariaDBコンテナに接続してデータを保存するとき、この仮想ネットワークが通信経路として働きます。
つまりDockerは、ネットワーク仮想化技術を使って、
「独立したネットワーク環境」をコンテナごとに用意しているんです。

bridgeネットワークの特徴
bridgeネットワークは、コンテナ間通信に使用されるデフォルトのネットワークです。このネットワークでは、Dockerデーモンがホスト上に仮想ブリッジを作成し、コンテナがそのブリッジに接続されます。ブリッジは、ホストの物理ネットワークと接続され、コンテナ間通信を仲介します。

🧱 bridge・host・noneの違い
それぞれのネットワークモードの仕組みを、もう少し詳しく見てみましょう。
| モード | 特徴 | 通信範囲 | 主な用途 |
|---|---|---|---|
| bridge | 仮想ブリッジを介してコンテナ同士が通信できる。 | 同じbridge内のコンテナ | 通常のコンテナ間通信に最適 |
| host | ホストのネットワークをそのまま使う。 | ホストと同じ | 高速な通信が必要な場合(例:ゲームサーバーなど) |
| none | ネットワークに接続しない。 | なし | テストや完全分離が必要な場合 |
イメージで表すとこんな感じです👇

作業前のクリーンアップ
まず、Docker環境をクリーンにしておきます。作業前に一度だけ実行しておくと、古い検証イメージや停止済みコンテナが整理され、以降の挙動が分かりやすくなります。
コマンドを実行する前に実行中のコンテナがあれば、すべて停止させておきます。
実行コマンド
docker system prune -a --volumesこのコマンドは、未使用のコンテナ・イメージ・ボリュームを一括で削除します。
残っているボリュームがあれば、コマンドやDocker Desktop のGUIで削除しておくとさらにスッキリします。
| オプション | 説明 |
|---|---|
| -a | すべての未使用イメージを削除 |
| --volumes | 未使用のボリュームも削除 |
💡 Docker DesktopのGUIを使えば、削除対象を視覚的に確認しながらクリーンアップすることもできます。
CLI操作が苦手な方にはこちらがおすすめです。
実行結果
PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all anonymous volumes not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] y🕹️ ネットワークを確認する
Dockerに今どんなネットワークがあるのかを調べるには、docker network ls コマンドを使います。
コマンド書式
docker network ls [OPTIONS]主なオプション一覧
| オプション | 説明 |
|---|---|
| --filter, -f | 名前やドライバなどでネットワークを絞り込む |
| --format | 出力フォーマットを指定(例:json、yaml) |
| --quiet, -q | ネットワークIDのみを表示 |
実行結果
PS C:\Users\joeac> docker network ls
NETWORK ID NAME DRIVER SCOPE
ec526007458b bridge bridge local
edc5f4ea708e host host local
0b1b4553af27 none null local結果から、bridge / host / none の3種類のネットワークが存在していることがわかります。
この出力を見て、「あ、Dockerがちゃんと初期ネットワークを用意してくれてるんだな」と理解できますね。
🧰 カスタムネットワークを作成する
必要に応じて、自分でネットワークを作ることもできます。
たとえば、WebアプリとDBを同じ専用ネットワークで通信させたいときなどに便利です。
コマンドはこれ👇
docker network create [OPTIONS] NETWORK主なオプション
| オプション | 説明 |
|---|---|
| --driver | ネットワークドライバを指定(デフォルトはbridge) |
| --subnet | サブネット(CIDR形式)を指定 |
| --gateway | ゲートウェイIPを指定 |
コマンド例
docker network create --driver bridge my_networkこのコマンドで my_network というブリッジタイプのネットワークが作成されます。
このネットワークに接続されたコンテナ同士は、独自の仮想LANのように通信できます。
実行結果
PS C:\Users\joeac> docker network create --driver bridge my_network
94ffe3162f6ed1eaa33ffb0c98de70328e564f1341b267136b6391c4b5534b9d
PS C:\Users\joeac> docker network ls
NETWORK ID NAME DRIVER SCOPE
ec526007458b bridge bridge local
edc5f4ea708e host host local
94ffe3162f6e my_network bridge local
0b1b4553af27 none null local🔒 ネットワーク管理とセキュリティ
ネットワークは、Docker環境のセキュリティにも大きく関係します。
コンテナ間の通信を隔離したり、アクセス範囲を制御することで、安全なシステム構成を維持できます。
たとえば
- 公開用Webサーバーと内部DBを別ネットワークに分ける。
- 管理用コンテナには限定アクセスしか許可しない。
- トラフィック監視を行って不審な通信を検知
こうしたネットワーク分離設計が、運用ではとても大事なんです。
🧹 不要なネットワークを整理する
いらないネットワークやキャッシュを削除してクリーンにしたい場合は、docker system prune -a コマンドを使います。
コマンド書式
docker system prune -a このコマンドは、停止中のコンテナ・未使用のネットワーク・不要なイメージ・キャッシュを一括削除します。
実行すると確認メッセージが出るので、y を入力して進めましょう。
| コマンド | 説明 |
|---|---|
| docker system prune -a | Docker環境を一括でクリーンアップする。 |
🔍 実際に確認してみよう!
不要なオブジェクトを削除したあと、再度ネットワーク一覧を確認します。
docker network ls実行結果
PS C:\Users\joeac> docker network ls
NETWORK ID NAME DRIVER SCOPE
ec526007458b bridge bridge local
edc5f4ea708e host host local
0b1b4553af27 none null localこのように表示されれば、Dockerの基本ネットワーク3つが正常に存在していることが確認できます!
🎯 まとめ
Dockerのネットワークを理解するうえで、まず押さえるべきポイントはこの3つです👇
- bridge:デフォルトで使われるネットワーク(基本これ)
- host:ホストとネットワークを共有(隔離なし)
- none:完全にネットワーク遮断(孤立状態)
これらを理解すれば、コンテナ間通信のしくみがスッキリ見えてきます。
次のステップでは、コンテナを実際にこれらのネットワークに接続して動作を確認していきましょう!
