docker networkコマンド完全ガイド|create/ls/inspect/connect/disconnect/rm/prune の使い方
5-1・5-2 でカスタムブリッジと名前解決の考え方を押さえました。今回はネットワーク操作コマンドの全カタログ。これらを使いこなせば、ネットワーク周りの「困った」の大半は自力で解決できます。
💡 この記事のゴール
①
②
③ サブネット・IP・MTU の手動指定
④ ラベル付けと
①
docker network の7つのサブコマンドを網羅②
inspect 出力の見方(サブネット・GW・コンテナ一覧)③ サブネット・IP・MTU の手動指定
④ ラベル付けと
prune での掃除
目次
- 7つのサブコマンド一覧
createの基本createの応用(サブネット・GW・MTU)lsの便利フィルタinspectの読み方connect/disconnectrmとprune- ラベル付けで整理する
- まとめ
1. 7つのサブコマンド一覧
| サブコマンド | 役割 | 頻度 |
|---|---|---|
docker network create <名前> |
ネットワーク作成 | ★★★ |
docker network ls |
一覧 | ★★★ |
docker network inspect <名前> |
詳細情報 | ★★★ |
docker network connect <net> <ctr> |
コンテナをネットワークに参加 | ★★ |
docker network disconnect <net> <ctr> |
ネットワークから切断 | ★★ |
docker network rm <名前> |
ネットワーク削除 | ★★ |
docker network prune |
使われていないネットワークを一括削除 | ★ |
2. create の基本
$ docker network create app-net
abc123def456...
# ドライバを明示(デフォルトは bridge)
$ docker network create --driver bridge app-net
--driver を省略すると bridge。5-5 で扱う host・overlay・macvlan 等を使いたいときだけ指定します。
3. create の応用(サブネット・GW・MTU)
# サブネット・ゲートウェイ・MTU を明示指定
docker network create \
--driver bridge \
--subnet 172.28.0.0/16 \
--gateway 172.28.0.1 \
--opt com.docker.network.driver.mtu=1450 \
my-net
| オプション | 意味 | 使う場面 |
|---|---|---|
--subnet |
IPアドレス範囲(CIDR) | ホスト側のLANと衝突回避、IP固定運用 |
--gateway |
ゲートウェイIP | 通常省略可、明示したいとき |
--ip-range |
DHCP割当範囲の制限 | 一部IPを予約したいとき |
--opt mtu= |
MTUサイズ | VPN越し等で MTU 制限がある環境 |
--internal |
外部通信を禁止 | 完全内部専用ネットワーク |
⚠️
Docker デフォルトの
--subnet は業務ネットワークと衝突させないDocker デフォルトの
172.17.0.0/16 等が社内LANと被ると、Dockerからの通信がおかしくなります。衝突するようなら /etc/docker/daemon.json の default-address-pools でデフォルト自体を変えるか、個別 --subnet 指定で避けます。
4. ls の便利フィルタ
# 全ネットワーク一覧
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
abc123... app-net bridge local
def456... bridge bridge local
ghi789... host host local
jkl012... none null local
# ドライバで絞り込み
$ docker network ls --filter driver=bridge
# 使われていないネットワークだけ表示
$ docker network ls --filter dangling=true
# ラベルで絞り込み(後述)
$ docker network ls --filter label=env=prod
5. inspect の読み方
$ docker network inspect app-net
[
{
"Name": "app-net",
"Id": "abc123def456...",
"Created": "2026-04-20T12:34:56Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Config": [{"Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1"}]
},
"Containers": {
"xxx1": {"Name": "app", "IPv4Address": "172.18.0.2/16", ...},
"xxx2": {"Name": "db", "IPv4Address": "172.18.0.3/16", ...}
},
"Options": {},
"Labels": {}
}
]
| フィールド | 意味 |
|---|---|
IPAM.Config |
サブネット・ゲートウェイ(IP Address Management) |
Containers |
このネットワークに参加中のコンテナ一覧+IP |
Driver |
bridge / host / overlay / macvlan 等 |
Scope |
local(単一ホスト)/ swarm(クラスタ) |
実用例:コンテナのIPだけ抜く
$ docker inspect -f '{{.NetworkSettings.Networks.app-net.IPAddress}}' app
172.18.0.2
6. connect / disconnect
既存コンテナをネットワークに参加させる
docker network connect app-net web
docker network connect --alias api app-net web # エイリアス付き
docker network connect --ip 172.18.0.50 app-net web # IPを明示指定
切り離す
docker network disconnect app-net web
# 強制切断(動作中でも)
docker network disconnect -f app-net web
💡 実行中のコンテナで connect/disconnect できる
コンテナを停止・再起動せずに、ライブでネットワーク構成を変えられます。ブルーグリーン切替や、本番サーバで緊急的に通信を遮断したいときに有用。
コンテナを停止・再起動せずに、ライブでネットワーク構成を変えられます。ブルーグリーン切替や、本番サーバで緊急的に通信を遮断したいときに有用。
7. rm と prune
# 単一削除
$ docker network rm app-net
# 使われていないネットワーク全部削除
$ docker network prune
WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Networks:
old-net-1
old-net-2
⚠️ 参加コンテナがあると rm できない
Error: network app-net has active endpoints と出たら、先に関係するコンテナを docker rm するか、docker network disconnect -f で強制切断してから削除します。
docker network prune はdefault の bridge/host/none は削除しません。ユーザー定義のネットワークのうち、現在どのコンテナからも使われていないものだけを対象にします。
8. ラベル付けで整理する
ネットワークが増えてきたらラベルで分類しておくと後で楽です。
# ラベル付きで作成
docker network create --label env=prod --label project=shop prod-shop-net
# ラベルで一覧フィルタ
docker network ls --filter label=env=prod
docker network ls --filter label=project=shop
# ラベルで一括削除(慎重に)
for id in $(docker network ls --filter label=env=dev -q); do
docker network rm "$id"
done
💡 Docker Compose は自動でラベルを付ける
Compose が作るネットワークには
Compose が作るネットワークには
com.docker.compose.network=<netname> 等のラベルが付きます。ラベルフィルタを使えば Compose 関連だけを絞って操作できます。
9. まとめ
| やりたいこと | コマンド |
|---|---|
| 作成 | docker network create [--subnet ...] [--driver ...] name |
| 一覧 | docker network ls [--filter ...] |
| 詳細 | docker network inspect name |
| 参加 | docker network connect [--alias] [--ip] net ctr |
| 切断 | docker network disconnect [-f] net ctr |
| 削除 | docker network rm name |
| 一括掃除 | docker network prune |
参考リンク
- docker network リファレンス(公式) — 全サブコマンド・全フラグの一次情報源。
- Configure default address pools(公式) — デフォルトサブネットを社内LANと衝突しないように変更する方法。



コメント