Docker如何固定IP設(shè)置的方法
由于工作需要,需要給Docker設(shè)置固定IP,在網(wǎng)上的查找了一些資料,自己試著實(shí)踐一下,留個(gè)筆記。
經(jīng)常用Docker模擬項(xiàng)目在生產(chǎn)環(huán)境中的部署,往往需要同時(shí)開(kāi)好幾臺(tái)Docker容器,而且有時(shí)安裝的軟件需要綁定Docker局域網(wǎng)中的其他容器,如 MongoDB 副本集部署的時(shí)候,就需要綁定其他容器的內(nèi)網(wǎng)IP。
但是,Docker 每次重啟后,容器的IP地址會(huì)變化,查詢了資料,Docker是支持設(shè)置固定IP的。
Docker 默認(rèn)網(wǎng)絡(luò)
Docker安裝后,默認(rèn)會(huì)創(chuàng)建下面三種網(wǎng)絡(luò)類型:
$ docker network ls NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge local 1252da701e55 host host local 237ea3d5cfbf none null local
啟動(dòng) Docker的時(shí)候,用 --network 參數(shù),可以指定網(wǎng)絡(luò)類型,如:
~ docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:latest /bin/bash
bridge:橋接網(wǎng)絡(luò)
默認(rèn)情況下啟動(dòng)的Docker容器,都是使用 bridge,Docker安裝時(shí)創(chuàng)建的橋接網(wǎng)絡(luò),每次Docker容器重啟時(shí),會(huì)按照順序獲取對(duì)應(yīng)的IP地址,這個(gè)就導(dǎo)致重啟下,Docker的IP地址就變了
none:無(wú)指定網(wǎng)絡(luò)
使用 --network=none ,docker 容器就不會(huì)分配局域網(wǎng)的IP
host: 主機(jī)網(wǎng)絡(luò)
使用 --network=host,此時(shí),Docker 容器的網(wǎng)絡(luò)會(huì)附屬在主機(jī)上,兩者是互通的。
例如,在容器中運(yùn)行一個(gè)Web服務(wù),監(jiān)聽(tīng)8080端口,則主機(jī)的8080端口就會(huì)自動(dòng)映射到容器中。
創(chuàng)建自定義網(wǎng)絡(luò):(設(shè)置固定IP)
啟動(dòng)Docker容器的時(shí)候,使用默認(rèn)的網(wǎng)絡(luò)是不支持指派固定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.
因此,需要?jiǎng)?chuàng)建自定義網(wǎng)絡(luò),下面是具體的步驟:
步驟1: 創(chuàng)建自定義網(wǎng)絡(luò)
創(chuàng)建自定義網(wǎng)絡(luò),并且指定網(wǎng)段: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: 創(chuàng)建Docker容器
➜ ~ docker run -itd --name networkTest1 --net mynetwork --ip 172.18.0.2 centos:latest /bin/bash
這個(gè)時(shí)候,創(chuàng)建的Docker容器就會(huì)持有 172.18.0.2 這個(gè)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容器指定自定義網(wǎng)段的固定IP/靜態(tài)IP地址
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker之修改/etc/default/docker 里的DOCKER_OPTS參數(shù)不生效問(wèn)題
這篇文章主要介紹了Docker之修改/etc/default/docker 里的DOCKER_OPTS參數(shù)不生效問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
詳解CentOS 7 : Docker私有倉(cāng)庫(kù)搭建和使用
本篇文章主要介紹了詳解CentOS 7 : Docker私有倉(cāng)庫(kù)搭建和使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
使用Docker將容器目錄掛載到主機(jī)上的實(shí)現(xiàn)方法
本文主要介紹了使用Docker將容器目錄掛載到主機(jī)上的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
docker安裝Jenkins配置Gitee SSH密鑰踩坑解決
這篇文章主要為大家介紹了docker安裝Jenkins配置Gitee SSH密鑰踩坑解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
使用rpm安裝指定版本docker(1.12.6)的詳細(xì)步驟
為了防止安裝高版本的docker引發(fā)的錯(cuò)誤,需要安裝1.12.6版本的docker,下面小編給大家?guī)?lái)了使用rpm安裝指定版本的docker(1.12.6)的步驟,感興趣的朋友一起看看吧2021-08-08
使用Docker部署Nacos并配置MySQL數(shù)據(jù)源的詳細(xì)步驟
Nacos是阿里巴巴開(kāi)源的服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái),它提供了注冊(cè)中心和配置中心的功能,能夠輕松地管理微服務(wù)的注冊(cè)與發(fā)現(xiàn),以及動(dòng)態(tài)配置的管理,這篇文章主要給大家介紹了關(guān)于使用Docker部署Nacos并配置MySQL數(shù)據(jù)源的超詳細(xì)步驟,需要的朋友可以參考下2024-05-05
關(guān)于docker安全之Docker-TLS加密通訊問(wèn)題
這篇文章主要介紹了docker安全之Docker-TLS加密通訊,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12

