您好,登錄后才能下訂單哦!
由于工作需要,需要給Docker設置固定IP,在網上的查找了一些資料,自己試著實踐一下,留個筆記。
經常用Docker模擬項目在生產環境中的部署,往往需要同時開好幾臺Docker容器,而且有時安裝的軟件需要綁定Docker局域網中的其他容器,如 MongoDB 副本集部署的時候,就需要綁定其他容器的內網IP。
但是,Docker 每次重啟后,容器的IP地址會變化,查詢了資料,Docker是支持設置固定IP的。
Docker 默認網絡
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: 創建自定義網絡
創建自定義網絡,并且指定網段:172.18.0.0/16
➜ ~ 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容器就會持有 172.18.0.2 這個IP.
[root@ec8e31938fe7 /]# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:AC:12:00:02 inet addr:172.18.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe12:2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:88 errors:0 dropped:0 overruns:0 frame:0 TX packets:14 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4056 (3.9 KiB) TX bytes:1068 (1.0 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
鏈接
Docker Container Networking
為Docker容器指定自定義網段的固定IP/靜態IP地址
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。