Dockerネットワーキング: デフォルトCIDRブロックと設定
DockerのデフォルトネットワークCIDRレンジを理解しましょう。ブリッジネットワーク、オーバーレイネットワーク、Dockerサブネット割り当てのカスタマイズ方法を安全に解説します。
172.17.0.0/16Cloud詳細な説明
DockerネットワーキングのCIDR
DockerはプライベートレンジからCIDRブロックを使用してネットワークを自動作成します。既存のインフラとの競合を避けるため、これらのデフォルト値を理解することが不可欠です。
Dockerのデフォルトネットワーク
Dockerがインストールされると、3つのデフォルトネットワークが作成されます:
| ネットワーク | ドライバー | CIDR |
|---|---|---|
| bridge | bridge | 172.17.0.0/16 |
| host | host | (ホストIPを使用) |
| none | null | (ネットワークなし) |
デフォルトのブリッジネットワークは 172.17.0.0/16 を使用し、Dockerホストが 172.17.0.1、コンテナが 172.17.0.2 から連番でアドレスを受け取ります。
カスタムブリッジネットワーク
docker network create でカスタムネットワークを作成すると、Dockerはアドレスプールからサブネットを割り当てます。デフォルトでは、このプールは以下をカバーします:
172.17.0.0/16 through 172.31.0.0/16 (bridge networks)
10.0.0.0/8 (overlay networks)
新しいブリッジネットワークには、デフォルトで /20 サブネット (4,094使用可能アドレス) が割り当てられます。
CIDRのカスタマイズ
ネットワーク作成時にカスタムサブネットを指定できます:
docker network create --subnet=192.168.100.0/24 my-network
または /etc/docker/daemon.json でデフォルトアドレスプールをグローバルに設定できます:
{
"default-address-pools": [
{"base": "10.10.0.0/16", "size": 24}
]
}
よくある競合
Dockerのデフォルト 172.17.0.0/16 レンジは以下と競合する可能性があります:
- 172.16.0.0/12 プライベートレンジを使用する企業ネットワーク
- 同じレンジからアドレスを割り当てるVPN接続
- 同一ホスト上の他のコンテナランタイム (Kubernetes、Podman)
Docker Compose ネットワーク
Docker Composeでは、各プロジェクトが独自のブリッジネットワークを作成します。明示的な設定がないと、デフォルトプールからサブネットが消費されます。本番環境では常にサブネットを明示的に指定しましょう:
networks:
backend:
ipam:
config:
- subnet: 10.100.0.0/24
ベストプラクティス
- エンタープライズ環境にDockerをデプロイする前にアドレス空間を監査する
- 既存ネットワークとの重複を避けるためにアドレスプールをカスタマイズする
- 本番のDocker Composeファイルでは明示的なサブネットを使用する
- ネットワークチームとコンテナチームが衝突しないよう割り当てを文書化する
ユースケース
開発者がDockerのデフォルトアドレスプールを 10.10.0.0/16 にカスタマイズし、172.16.0.0/12 レンジを使用する企業VPNとの競合を回避します。
Try It — Subnet Calculator
関連トピック
プライベートIPレンジ: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
10.0.0.0/8 · IPv4
AWS VPC CIDRブロック: 適切なサブネットサイズの選び方
10.0.0.0/16 · Cloud
/8 サブネット (255.0.0.0)
10.0.0.0/8 · IPv4
NATとサブネット: ネットワークアドレス変換の仕組み
192.168.0.0/16 · Concept
/16 サブネット (255.255.0.0)
172.16.0.0/16 · IPv4
CIDR 表記の解説: IPアドレッシングの仕組み
10.0.0.0/16 · Concept