docker添加網(wǎng)橋并設(shè)置ip地址范圍操作
不知道是因?yàn)槎M(jìn)制docker 19.03版本安裝后不自動(dòng)創(chuàng)建docker0網(wǎng)橋,還是其他什么原因,docker的網(wǎng)絡(luò)模式里面的bridge網(wǎng)橋沒(méi)有。
害的我裝個(gè)容器映射端口一直看不到端口,也不報(bào)錯(cuò),定位半天才發(fā)現(xiàn)沒(méi)有這個(gè)bridge網(wǎng)橋。
廢話不多說(shuō)。開(kāi)干!
先看一下當(dāng)前情況:
由于是生產(chǎn)環(huán)境,所以先要把pod給驅(qū)逐一下,以免影響業(yè)務(wù)
首先說(shuō)下,直接使用docker network create xx的方式是不行的。因?yàn)檫@種方式創(chuàng)建的網(wǎng)橋并沒(méi)有掛到虛擬機(jī)上,所以不工作,可能需要一些其他的額外配置。這里就不去研究了。提一下,免得各位踩坑。
整個(gè)過(guò)程如下圖,清晰可見(jiàn)。為了方便各位看官老爺,我把命令也復(fù)制出來(lái)。
[root@dashuaibi-server-103 jpserver]# ip a|grep docker0 [root@dashuaibi-server-103 jpserver]# brctl -h Usage: brctl [commands] commands: addbr <bridge> add bridge delbr <bridge> delete bridge addif <bridge> <device> add interface to bridge delif <bridge> <device> delete interface from bridge hairpin <bridge> <port> {on|off} turn hairpin on/off setageing <bridge> <time> set ageing time setbridgeprio <bridge> <prio> set bridge priority setfd <bridge> <time> set bridge forward delay sethello <bridge> <time> set hello time setmaxage <bridge> <time> set max message age setpathcost <bridge> <port> <cost> set path cost setportprio <bridge> <port> <prio> set port priority show [ <bridge> ] show a list of bridges showmacs <bridge> show a list of mac addrs showstp <bridge> show bridge stp info stp <bridge> {on|off} turn stp on/off [root@dashuaibi-server-103 jpserver]# brctl addbr docker0 [root@dashuaibi-server-103 jpserver]# ip link set docker0 up [root@dashuaibi-server-103 jpserver]# ip addr add 192.168.0.0/16 dev docker0 [root@dashuaibi-server-103 jpserver]# cat /etc/docker/daemon.json {"data-root": "/docker","bridge": "none","registry-mirrors": ["http://9b2cd203.m.daocloud.io"]} [root@dashuaibi-server-103 jpserver]# vim /etc/docker/daemon.json [root@dashuaibi-server-103 jpserver]# cat /etc/docker/daemon.json {"data-root": "/docker","bridge": "docker0","registry-mirrors": ["http://9b2cd203.m.daocloud.io"]} [root@dashuaibi-server-103 jpserver]# systemctl daemon-reload [root@dashuaibi-server-103 jpserver]# systemctl restart docker [root@dashuaibi-server-103 jpserver]# ip a|grep docker0 149: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 inet 192.168.0.1/16 brd 192.168.255.255 scope global docker0 [root@dashuaibi-server-103 jpserver]# docker network ls NETWORK ID NAME DRIVER SCOPE edd34bc4e197 bridge bridge local 9560af3573ae host host local 22885d053744 none null local [root@dashuaibi-server-103 jpserver]#
重啟完了以后,重新跑要映射端口的容器,對(duì)比如下。之前沒(méi)有添加網(wǎng)橋就沒(méi)有端口,添加完網(wǎng)橋以后。端口正常映射
最后就是去除污點(diǎn),讓該節(jié)點(diǎn)重新恢復(fù)調(diào)度。
kubectl uncordon 10.168.0.103
補(bǔ)充:Docker修改默認(rèn)網(wǎng)橋ip地址172.17.0.1
Docker 服務(wù)啟動(dòng)后默認(rèn)會(huì)創(chuàng)建一個(gè) docker0 網(wǎng)橋(其上有一個(gè) docker0 內(nèi)部接口),它在內(nèi)核層連通了其他的物理或虛擬網(wǎng)卡,這就將所有容器和本地主機(jī)都放到同一個(gè)物理網(wǎng)絡(luò)。
Docker 默認(rèn)指定了 docker0 接口 的 IP 地址和子網(wǎng)掩碼,讓主機(jī)和容器之間可以通過(guò)網(wǎng)橋相互通信,它還給出了 MTU(接口允許接收的最大傳輸單元),通常是 1500 Bytes,或宿主主機(jī)網(wǎng)絡(luò)路由上支持的默認(rèn)值。這些值都可以在服務(wù)啟動(dòng)的時(shí)候進(jìn)行配置。
可以用編輯/etc/docker/daemon.json文件,添加內(nèi)容 "bip": "ip/netmask" [ 切勿與宿主機(jī)同網(wǎng)段 ]
[root@localhost /]# vi /etc/docker/daemon.json {"bip":"192.168.100.1/24"} systemctl restart docker
注意:很懂朋友這么修改是不成功的,又用brctl 刪除網(wǎng)橋,其實(shí)只是你沒(méi)有配置對(duì)。
有些daemon.json文件里面是有內(nèi)容的例如:
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}這是個(gè)docker的私有源
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]} {"bip":"172.16.0.1/24"}
這樣改是不會(huì)生效的
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"], "bip":"172.16.0.1/24"}
這才是正確的修改方法。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
docker修改默認(rèn)ip的實(shí)現(xiàn)步驟
在 Docker 中,默認(rèn)的網(wǎng)絡(luò)是 bridge 網(wǎng)絡(luò),它通常使用 172.17.0.0/16 這個(gè)網(wǎng)段,那么如何修改,本文就來(lái)詳細(xì)的介紹下docker修改默認(rèn)ip的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-02-02Docker 啟動(dòng)Redis 并設(shè)置密碼的操作
這篇文章主要介紹了Docker 啟動(dòng)Redis 并設(shè)置密碼的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Windows使用docker打開(kāi)新窗口error解決辦法
這篇文章主要介紹了Windows使用docker打開(kāi)新窗口error解決辦法,十分簡(jiǎn)單,需要的朋友可以參考下。2017-09-09Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟
這篇文章主要介紹了Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08docker寫(xiě)一個(gè)Dockerfile文件的實(shí)現(xiàn)
Dockerfile 是一個(gè)用來(lái)構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說(shuō)明,本文主要介紹了docker寫(xiě)一個(gè)Dockerfile文件的實(shí)現(xiàn)2024-01-01