Docker 容器的 虛擬 IP 固定

要讓 Docker 容器的 虛擬 IP 固定,通常需要透過 自訂網路 (user-defined network) 來達成。因為 Docker 預設的 bridge network 會動態分配 IP,無法保證每次啟動都相同。以下是完整做法:


🛠 方法一:建立自訂 bridge network 並指定 IP

  1. 建立一個自訂網路,指定子網與閘道:
    docker network create \
      --subnet=192.168.100.0/24 \
      --gateway=192.168.100.1 \
      my_custom_network
    
  2. 啟動容器時指定固定 IP:
    bash docker run -d \ --net my_custom_network \ --ip 192.168.100.10 \ --name my_container \ nginx
    👉 這樣容器就會固定使用 192.168.100.10

🛠 方法二:Docker Compose 設定固定 IP

docker-compose.yml 中指定網路與 IP:

version: '3.9'
services:
  web:
    image: nginx
    container_name: my_web
    networks:
      my_network:
        ipv4_address: 192.168.100.20
networks:
  my_network:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.100.0/24
          gateway: 192.168.100.1

執行:

docker-compose up -d

👉 容器 my_web 就會固定在 192.168.100.20


⚠️ 注意事項

  • 避免 IP 衝突:確保指定的 IP 沒有被其他容器使用。
  • 僅限自訂網路:在預設的 bridge 網路中無法指定固定 IP。
  • 跨主機環境:如果是 Swarm 或 Kubernetes,就需要用 overlay network 或 CNI plugin 來管理 IP。

Also See

File12FileLast Modified
docker 列出目前沒有被用的虛擬網路和網域IPdocker 列出目前沒有被用的虛擬網路和網域IP1:23 AM - December 07, 2025
避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路8:20 PM - December 06, 2025
讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用8:20 PM - December 06, 2025
要把 Docker 版本從 29 降到 28,同時保留原本的容器不受影響要把 Docker 版本從 29 降到 28,同時保留原本的容器不受影響8:20 PM - December 06, 2025
要建立並在背景執行一個 Docker Compose要建立並在背景執行一個 Docker Compose8:20 PM - December 06, 2025
完整移除一個 Docker container完整移除一個 Docker container8:20 PM - December 06, 2025
完整停止一個 Docker Compose完整停止一個 Docker Compose8:20 PM - December 06, 2025
停止一個正在執行的 Docker container停止一個正在執行的 Docker container8:20 PM - December 06, 2025
Windows containersWindows containers8:20 PM - December 06, 2025
portainer container unreachable問題portainer container unreachable問題8:20 PM - December 06, 2025
docker列出 所有容器的網域 (network) 與 IP 位址docker列出 所有容器的網域 (network) 與 IP 位址8:20 PM - December 06, 2025
Docker 容器管理速查表Docker 容器管理速查表8:20 PM - December 06, 2025