docker添加網(wǎng)橋并設置ip地址范圍操作
不知道是因為二進制docker 19.03版本安裝后不自動創(chuàng)建docker0網(wǎng)橋,還是其他什么原因,docker的網(wǎng)絡模式里面的bridge網(wǎng)橋沒有。
害的我裝個容器映射端口一直看不到端口,也不報錯,定位半天才發(fā)現(xiàn)沒有這個bridge網(wǎng)橋。
廢話不多說。開干!
先看一下當前情況:由于是生產(chǎn)環(huán)境,所以先要把pod給驅逐一下,以免影響業(yè)務
首先說下,直接使用docker network create xx的方式是不行的。因為這種方式創(chuàng)建的網(wǎng)橋并沒有掛到虛擬機上,所以不工作,可能需要一些其他的額外配置。這里就不去研究了。提一下,免得各位踩坑。
整個過程如下圖,清晰可見。為了方便各位看官老爺,我把命令也復制出來。
[root@dashuaibi-server-103 jpserver]# ip a|grep docker0[root@dashuaibi-server-103 jpserver]# brctl -hUsage: 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 docker0149: 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 lsNETWORK ID NAME DRIVER SCOPEedd34bc4e197 bridge bridge local9560af3573ae host host local22885d053744 none null local[root@dashuaibi-server-103 jpserver]#
重啟完了以后,重新跑要映射端口的容器,對比如下。之前沒有添加網(wǎng)橋就沒有端口,添加完網(wǎng)橋以后。端口正常映射
最后就是去除污點,讓該節(jié)點重新恢復調(diào)度。
kubectl uncordon 10.168.0.103
補充:Docker修改默認網(wǎng)橋ip地址172.17.0.1
Docker 服務啟動后默認會創(chuàng)建一個 docker0 網(wǎng)橋(其上有一個 docker0 內(nèi)部接口),它在內(nèi)核層連通了其他的物理或虛擬網(wǎng)卡,這就將所有容器和本地主機都放到同一個物理網(wǎng)絡。
Docker 默認指定了 docker0 接口 的 IP 地址和子網(wǎng)掩碼,讓主機和容器之間可以通過網(wǎng)橋相互通信,它還給出了 MTU(接口允許接收的最大傳輸單元),通常是 1500 Bytes,或宿主主機網(wǎng)絡路由上支持的默認值。這些值都可以在服務啟動的時候進行配置。
可以用編輯/etc/docker/daemon.json文件,添加內(nèi)容 'bip': 'ip/netmask' [ 切勿與宿主機同網(wǎng)段 ]
[root@localhost /]# vi /etc/docker/daemon.json {'bip':'192.168.100.1/24'}systemctl restart docker
注意:很懂朋友這么修改是不成功的,又用brctl 刪除網(wǎng)橋,其實只是你沒有配置對。
有些daemon.json文件里面是有內(nèi)容的例如:
{'registry-mirrors': ['http://f1361db2.m.daocloud.io']}這是個docker的私有源
{'registry-mirrors': ['http://f1361db2.m.daocloud.io']}{'bip':'172.16.0.1/24'}
這樣改是不會生效的
{'registry-mirrors': ['http://f1361db2.m.daocloud.io'],'bip':'172.16.0.1/24'}
這才是正確的修改方法。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章:
1. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明2. CSS hack用法案例詳解3. ASP 處理JSON數(shù)據(jù)的實現(xiàn)代碼4. PHP設計模式中工廠模式深入詳解5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. asp中response.write("中文")或者js中文亂碼問題7. ASP.NET MVC遍歷驗證ModelState的錯誤信息8. ThinkPHP5實現(xiàn)JWT Token認證的過程(親測可用)9. ASP 信息提示函數(shù)并作返回或者轉向10. .Net Core和RabbitMQ限制循環(huán)消費的方法
