• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

docker添加网桥并设置ip地址范围操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

不知道是因为二进制docker 19.03版本安装后不自动创建docker0网桥,还是其他什么原因,docker的网络模式里面的bridge网桥没有。

害的我装个容器映射端口一直看不到端口,也不报错,定位半天才发现没有这个bridge网桥。

废话不多说。开干!

先看一下当前情况:

由于是生产环境,所以先要把pod给驱逐一下,以免影响业务

首先说下,直接使用docker network create xx的方式是不行的。因为这种方式创建的网桥并没有挂到虚拟机上,所以不工作,可能需要一些其他的额外配置。这里就不去研究了。提一下,免得各位踩坑。

整个过程如下图,清晰可见。为了方便各位看官老爷,我把命令也复制出来。

[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]#

重启完了以后,重新跑要映射端口的容器,对比如下。之前没有添加网桥就没有端口,添加完网桥以后。端口正常映射

最后就是去除污点,让该节点重新恢复调度。

kubectl uncordon 10.168.0.103

补充:Docker修改默认网桥ip地址172.17.0.1

Docker 服务启动后默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。

Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信,它还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认值。这些值都可以在服务启动的时候进行配置。

可以用编辑/etc/docker/daemon.json文件,添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ]

[root@localhost /]# vi /etc/docker/daemon.json 
{"bip":"192.168.100.1/24"}
systemctl restart docker

注意:很懂朋友这么修改是不成功的,又用brctl 删除网桥,其实只是你没有配置对。

有些daemon.json文件里面是有内容的例如:

{"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"}

这才是正确的修改方法。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持极客世界。如有错误或未考虑完全的地方,望不吝赐教。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
docker可视化工具Portainer部署并汉化的操作发布时间:2022-02-12
下一篇:
docker-compose创建网桥,添加子网,删除网卡的实现发布时间:2022-02-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap