Docker - Network 網路

Network 模式比較

模式 可連外網 與主機是否同網段 IP 設定方式
Bridged 可以 相同 手動
NAT 可以 不同 DHCP 自動分配
Host-only 不行 不同 DHCP 自動分配

📌 說明:

  • Docker 預設使用 bridge 模式,適用於大部分容器間通訊的需求。
  • host 模式會使容器與主機共用網路名稱空間,適合需要高效能網路存取的應用。
  • none 模式表示容器不配置任何網路介面。

常用指令整理

查看現有 network

# 查看所有 networks
docker network ls

# 查看特定 network 詳細資訊
docker network inspect <network-name>

建立新的 network

# 建立 bridge 模式的 network
docker network create -d bridge <network-name>

# 建立自訂 gateway 和 subnet 的 bridge network
docker network create -d bridge \
  --gateway 172.200.0.1 \
  --subnet 172.200.0.0/16 \
  <network-name>

使用 network 啟動容器

# 指定 network 啟動容器
docker container run -itd --network <network-name> <image-name>:<tag>

# 端口映射 (與 network 無關但常與其搭配使用)
docker container run -d -p 80:80 <image-name>

修改容器網路

# 將容器連接到指定 network,可連接多個
docker network connect <network-name> <container-name>

# 從 network 中移除容器
docker network disconnect <network-name> <container-name>

小提醒

  • 容器若在同一個 user-defined bridge network 中,會自動使用容器名稱進行 DNS 解析。
  • 使用 docker-compose 時,建議使用 networks 區塊進行網路定義,易於管理與擴展。