避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路

要避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路,有兩個層次的設定方式:


🛠️ 方法一:修改 Docker Daemon 預設網段

Docker 在啟動時會建立一個預設的 docker0 bridge,通常使用 172.17.0.0/16
你可以在 /etc/docker/daemon.json 中指定一個新的網段:

{
  "bip": "192.168.250.1/24"
}
  • bip (Bridge IP) 用來設定 docker0 的 IP 與子網段。
  • 這樣 Docker 就不會再用 172.x.x.x,而是改用 192.168.250.0/24
    修改後需要重啟 Docker:
sudo systemctl restart docker

🛠️ 方法二:建立自訂網路時指定子網段

如果你不想改全域預設,只要在建立網路時指定即可:

docker network create \
  --subnet=192.168.200.0/24 \
  --gateway=192.168.200.1 \
  my_custom_net
  • 這樣新建的網路就會用 192.168.200.x,而不是 172.x.x.x
  • 啟動容器時指定網路:
    docker run -d --network=my_custom_net myapp
    

📌 注意事項

  • 請選擇 RFC1918 私有網段,避免與外部網段衝突:
    • 10.0.0.0/8
    • 192.168.0.0/16
    • 或者挑選 172.16.0.0/12 中不會衝突的範圍
  • 修改預設網段後,舊容器可能需要重新建立。
  • 如果你有多個自訂網路,建議用不同子網段,避免重疊。

👉 你是想要 全域禁止 Docker 使用 172.x.x.x(改掉預設 docker0),還是只要在 新建網路時避免?我可以幫你整理一個「全域 vs 單一網路」的對照表,讓你快速判斷該怎麼做。

Also See

File12FileLast Modified
讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用2:24 PM - January 12, 2026
要把 Docker 版本從 29 降到 28,同時保留原本的容器不受影響要把 Docker 版本從 29 降到 28,同時保留原本的容器不受影響2:24 PM - January 12, 2026
要建立並在背景執行一個 Docker Compose要建立並在背景執行一個 Docker Compose2:24 PM - January 12, 2026
完整移除一個 Docker container完整移除一個 Docker container2:24 PM - January 12, 2026
完整停止一個 Docker Compose完整停止一個 Docker Compose2:24 PM - January 12, 2026
停止一個正在執行的 Docker container停止一個正在執行的 Docker container2:24 PM - January 12, 2026
Windows containersWindows containers2:24 PM - January 12, 2026
portainer container unreachable問題portainer container unreachable問題2:24 PM - January 12, 2026
docker列出 所有容器的網域 (network) 與 IP 位址docker列出 所有容器的網域 (network) 與 IP 位址2:24 PM - January 12, 2026
Docker 容器管理速查表Docker 容器管理速查表2:24 PM - January 12, 2026
Docker 容器的 虛擬 IP 固定Docker 容器的 虛擬 IP 固定2:24 PM - January 12, 2026
docker 列出目前沒有被用的虛擬網路和網域IPdocker 列出目前沒有被用的虛擬網路和網域IP2:24 PM - January 12, 2026