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

ベストプラクティス

  1. エンタープライズ環境にDockerをデプロイする前にアドレス空間を監査する
  2. 既存ネットワークとの重複を避けるためにアドレスプールをカスタマイズする
  3. 本番のDocker Composeファイルでは明示的なサブネットを使用する
  4. ネットワークチームとコンテナチームが衝突しないよう割り当てを文書化する

ユースケース

開発者がDockerのデフォルトアドレスプールを 10.10.0.0/16 にカスタマイズし、172.16.0.0/12 レンジを使用する企業VPNとの競合を回避します。

Try It — Subnet Calculator

フルツールを開く