docker服务进程在启动的时候会生成一个名为docker0的网桥,容器默认都会挂载到该网桥下.
但是我们可以通过添加docker启动参数-b Birdge 或更改docker配置文件来选择使用哪个网桥。
由于Centos7最小化安装,没有brctl命令。 需要yum安装
~# yum install bridge-utils -y ~# wget https://soft.8090st.com/docker/pipework -O /usr/local/bin/pipework ~# chmod +x /usr/local/bin/pipework
2、停止Docker服务
~# systemctl stop docker
3.删除docker0网卡
~# ip link set dev docker0 down //关闭docker0网桥 ~# brctl delbr docker0 //删除docker0网桥
4、编辑网卡配置文件
~# cd /etc/sysconfig/network-scripts/ ~# vi ifcfg-eno16777736 TYPE=Ethernet IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 UUID=2b04503d-4c0d-4f0f-8790-7b6203739892 DEVICE=eno16777736 ONBOOT=yes BRIDGE=br0 //设置桥接br0
5、自定义网桥设置(/etc/sysconfig/network-scripts/ifcfg-br0文件)
提示:根据自己的网络设置ip地址
# vi ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static ONBOOT=yes DELAY=0 STP=yes IPADDR=192.168.1.144 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 DNS2=114.114.114.114
6、重启相关服务,以及关闭相关服务
~# systemctl stop NetworkManager ~# systemctl disable NetworkManager ~# systemctl restart network
br0正常启动,能够正常访问该机器即可,再用下面命令查看有即可:
~# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c292c5367 yes eno16777728
启动容器
~# docker run -itd --name test1 centos WARNING: IPv4 forwarding is disabled. Networking will not work. 83091a193846785bf5b74e23e476201695244d0718fd6f5654632131ce5b3a21
分配IP地址
~# pipework br0 test1 192.168.1.199/24@192.168.1.1
进入容器
~# docker attach 79e412d76155f4
接下来我们需要重新启动docker,可以在启动docker服务进程时使用以下方式指定网桥:
-b 参数指定网桥
~# vim /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -b=br0</del>
不推荐修改docker.service , 建议使用以下方法
1、创建一个network
~# docker network create --subnet=10.211.17/24 DB-VPC
2、启动容器:
~# docker run -itd --name test1 --net DB-VPC --ip 10.211.17.2 centos
3、分配物理IP
~# pipework br0 test1 192.168.1.220/24@192.168.1.1
版权信息:8090社团>>Centos7 Docker添加自定义网桥
本文链接:https://www.8090st.com/centos7-docker-config-bridge.html 转载请注明出处.
如果喜欢:点此订阅本站
相关文章
为您推荐
各种观点