1. 程式人生 > >docker中設定固定IP

docker中設定固定IP

Docker安裝後,預設會建立下面三種網路型別

$ docker network ls
NETWORK ID     NAME        DRIVER       SCOPE
9781b1f585ae    bridge       bridge       local
1252da701e55    host        host        local
237ea3d5cfbf    none        null        local

啟動 Docker的時候,用 --network 引數,可以指定網路型別

docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:latest /bin/bash

bridge:橋接網路

預設情況下啟動的Docker容器,都是使用 bridge,Docker安裝時建立的橋接網路,每次Docker容器重啟時,會按照順序獲取對應的IP地址,這個就導致重啟下,Docker的IP地址就變了

none:無指定網路

使用 --network=none ,docker 容器就不會分配區域網的IP

host: 主機網路

使用 --network=host,此時,Docker 容器的網路會附屬在主機上,兩者是互通的。
例如,在容器中執行一個Web服務,監聽8080埠,則主機的8080埠就會自動對映到容器中。

建立自定義網路:(設定固定IP)

啟動Docker容器的時候,使用預設的網路是不支援指派固定IP的,如下
docker run -itd --net bridge --ip 172.17.0.10 centos:latest /bin/bash
6eb1f228cf308d1c60db30093c126acbfd0cb21d76cb448c678bab0f1a7c0df6
docker: Error response from daemon: User specified IP address is supported on user defined networks only.

步驟1: 建立自定義網路

docker network create --subnet=172.18.0.0/16 mynetwork
➜ ~ docker network ls
NETWORK ID     NAME        DRIVER       SCOPE
9781b1f585ae    bridge       bridge       local
1252da701e55    host        host        local
4f11ae9c85de    mynetwork      bridge       local
237ea3d5cfbf    none        null        local

步驟2: 建立Docker容器

docker run -itd --name networkTest1 --net mynetwork --ip 172.18.0.2 centos:latest /bin/bash