このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Dockerで学ぶネットワークの種類と管理コマンドまとめ

Dockerで学ぶネットワークの種類と管理コマンドまとめ
Dockerを使うとき、意外とつまづきやすいのが「ネットワーク」です。コンテナがどうやって通信しているのか、どんな種類のネットワークがあるのかを理解しておくと、トラブルシューティングもぐっと楽になります。ここではDockerネットワークの基本と、よく使う管理コマンドを一気にまとめていきましょう。

作業前のクリーンアップ
学習や検証を始める前に、不要なコンテナやイメージが残っていると挙動がわかりにくいことがあります。そんなときは以下のコマンドで一気に整理するのが便利です。コマンドの前に実行中のコンテナがあれば、すべて停止させておきます。
docker system prune -a- 停止済みコンテナ、未使用のネットワーク、イメージなどを削除してくれます
- 「Are you sure you want to continue? [y/N]」と聞かれるので「y」と答えればOK
ボリュームが残っているようであれば、ここで削除しておきましょう。
実行結果
PS C:\Users\joeac> docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks 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をインストールすると、すでに 3つのデフォルトネットワーク が作られています。これを確認するには次のコマンドを実行します。
docker network ls実行結果
PS C:\Users\joeac> docker network ls
NETWORK ID NAME DRIVER SCOPE
97ffa7624a4c bridge bridge local
edc5f4ea708e host host local
0b1b4553af27 none null localそれぞれの意味は以下の通りです。
| ネットワーク名 | 機能 | 使用例 |
|---|---|---|
| none | ネットワークなし(ループバックのみ) | docker run --network=none busybox |
| host | ホストと同じネットワーク空間を共有 | docker run --network=host nginx |
| bridge | 仮想ブリッジを経由してコンテナを接続 | docker run --network=bridge redis |
none ネットワーク
ネットワークが必要ない場合に使います。
例えば、以下のように busybox コンテナを none ネットワークで起動すると、ループバックしか持たない状態になります。
docker run -it --network none busybox実行結果
PS C:\Users\joeac> docker run -it --network none busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
80bfbb8a41a2: Pull complete
Digest: sha256:d82f458899c9696cb26a7c02d5568f81c8c8223f8661bb2a7988b269c8b9051e
Status: Downloaded newer image for busybox:latest
/ # ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/ # exit
PS C:\Users\joeac>コンテナ内で ifconfig を実行すると lo(ループバック)だけが確認できます。
host ネットワーク
ホストと同じネットワークスタックを共有する仕組みです。
- コンテナがホストのIPアドレスをそのまま使います。
- 高速ですが、コンテナの分離が弱まるので注意
bridge ネットワーク
デフォルトでコンテナがつながるネットワークです。
- Dockerが自動で仮想ブリッジ
docker0を作成 - コンテナには仮想IPが割り当てられ、NATを通して外部と通信
「特定のネットワークを指定しなかった場合はbridgeにつながる」というのもポイントです。
ネットワーク管理コマンド
Dockerのネットワークを管理するために、以下のコマンドが用意されています。
| コマンド | 意味 |
|---|---|
| docker network ls | 既存ネットワークを一覧表示 |
| docker network inspect | ネットワークの詳細情報を表示 |
| docker network create | 新しいネットワークを作成 |
| docker network rm | ネットワークを削除 |
| docker network connect | コンテナを既存ネットワークに接続 |
| docker network disconnect | コンテナをネットワークから切断 |
コマンド使用例
ネットワーク一覧
docker network ls現在利用可能なネットワークが確認できます。
実行結果
PS C:\Users\joeac> docker network ls
NETWORK ID NAME DRIVER SCOPE
97ffa7624a4c bridge bridge local
edc5f4ea708e host host local
0b1b4553af27 none null localネットワーク詳細
docker network inspect bridgeサブネットやゲートウェイの情報、接続されているコンテナなどがJSON形式で表示されます。
実行結果
PS C:\Users\joeac> docker network inspect bridge
[
{
"Name": "bridge",
"Id": "97ffa7624a4c273c74e0c8b27cf001703ed127f1ed6cbfd65fb545313a3a4004",
"Created": "2025-10-02T09:41:06.886841383Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv4": true,
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
(省略)
]新しいネットワークを作成
docker network create my_network実行結果
PS C:\Users\joeac> docker network create my_network
fb5a2fc1171c065790d1e5ac258283066e7091bd7c6bfa05c86e5821443f5ece
PS C:\Users\joeac> docker network ls
NETWORK ID NAME DRIVER SCOPE
97ffa7624a4c bridge bridge local
edc5f4ea708e host host local
fb5a2fc1171c my_network bridge local
0b1b4553af27 none null localネットワーク削除
docker network rm my_network実行結果
PS C:\Users\joeac> docker network rm my_network
my_network使わなくなったネットワークを消すと環境が整理されます。
コンテナをネットワークに接続
docker network connect my_network my_container実行結果
再度、「my_network」というネットワークを作成して、このネットワークに接続させる「my_container」コンテナを作成してから、コマンドを実行します。
PS C:\Users\joeac> docker network create my_network
9c781f5f5c1d2a1f23307d6489ecfac3200060f096a4f8d1974c92957304e47c
PS C:\Users\joeac> docker run -d -p 80:80 --name=my_container nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
4f4e50e20765: Pull complete
5f825f15e2e0: Pull complete
16d05858bb8d: Pull complete
375a694db734: Pull complete
5c32499ab806: Pull complete
08cfef42fd24: Pull complete
3cc5fdd1317a: Pull complete
Digest: sha256:8adbdcb969e2676478ee2c7ad333956f0c8e0e4c5a7463f4611d7a2e7a7ff5dc
Status: Downloaded newer image for nginx:latest
3895b33c09b58aca2b8ac5b09e737dcd25e1b216d6160963811bb85894bd206e
PS C:\Users\joeac> docker network connect my_network my_containerコンテナを「my_network」のネットワークに参加させます。
コンテナをネットワークから切断
docker network disconnect my_network my_container実行結果
PS C:\Users\joeac> docker network disconnect my_network my_container接続を解除すると、そのネットワークとの通信ができなくなります。
まとめ
- Dockerには none / host / bridge の3つの基本ネットワークがある。
docker network lsで一覧、docker network inspectで詳細を確認できる。docker network createで独自ネットワークを作れる。connectとdisconnectでコンテナを柔軟に接続・切断できる。- 使わなくなったネットワークは
docker network rmで整理する。
これらを覚えておけば、Dockerネットワークを自在に操れるようになります!
