centos7 docker宿主机配置桥接物理网络终极实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7 docker宿主机配置桥接物理网络终极实战相关的知识,希望对你有一定的参考价值。

centos7 docker宿主机配置桥接物理网络终极实战

1、停止docker daemon,并删除docker0

systemctl stop docker.service

ip link set dev docker0 down
brctl delbr docker0


2、创建桥接物理网络:

2.1、思路整理

(1)新建br0桥接网络,brctl show可以查看(需安装bridge-utils)

(2)将宿主机物理网卡IP、掩码、网关、dns(或者dhcp)配置到br0上

(3)删除宿主机物理网卡IP、掩码、网关、dns(或者dhcp)配置

(4)将宿主机物理网卡加入到br0

2.2、配置实战

思路可以有一个,但是方案必须要有多种,此处列举两个方案

2.2.1、更改网卡配置文件实现(推荐)

此方案见本人另外一篇博客:

http://zhaoyfcomeon.blog.51cto.com/8429349/1968869

2.2.2、bctrl and ip命令实现

brctl addbr br0
ip link set dev br0 up
ip addr add 192.168.184.100/24 dev br0 #为br0分配物理网络中的ip地址
ip addr del 192.168.184.99/24 dev ens0 #将宿主机网卡的IP清空
brctl addif br0 ens0 #将宿主机网卡挂到br0上
ip route del default #删除原路由
ip route add default via 192.168.184.2 dev br0 #为br0设置路由

3、设置docker服务启动参数

这里要注意的是,不同的linux操作系统docker的配置文件所在不同
centos 在/etc/sysconfig/docker
其他操作系统请前往下面的网址

https://docs.docker.com/installation/#installation
vim /etc/sysconfig/docker 
在OPTIONS=‘--selinux-enabled‘这行中修改为
OPTIONS=‘--selinux-enabled -b=br0‘
即让docker服务启动时使用br0网卡进行桥接

4、启动docker服务

systemctl start docker
systemctl status docker

5、安装pipework

git clone https://github.com/jpetazzo/pipework
cp ~/pipework/pipework /usr/local/bin/

6、启动一个none网络驱动的容器

这里最好不要让docker自动获取ip,下次启动会有变化而且自动获取的ip可能会和物理网段中的ip冲突

docker run -itd --net=none --name=test centos /bin/bash

7、为test容器设置一个与桥接物理网络同地址段的[email protected]网关

pipework br0 test 192.168.184.11/[email protected]

重点:pepework操作内容:

  • 查看主机中是否存在br0网桥、不存在就创建;

  • 向test中加入一块名为eth1的网卡,并配置IP地址为192.168.184.11/24

  • 若test中已经有默认路由,则删掉,把192.168.184.2设为默认路由的网关;

  • 将test容器连接到之前创建的br0上。

8、进入容器查看ip

docker exec -it test /bin/bash

本文出自 “zhaoyfcomeon-成长之路” 博客,请务必保留此出处http://zhaoyfcomeon.blog.51cto.com/8429349/1968886

以上是关于centos7 docker宿主机配置桥接物理网络终极实战的主要内容,如果未能解决你的问题,请参考以下文章

关于centos7桥接模式上不了网的配置

Centos7.x Docker桥接网络

VMware虚拟机下Centos7 桥接方式网络配置完整步骤

VMware虚拟机下Centos7 使用桥接方式的配置网路

VMware虚拟机下Centos7 使用桥接方式的配置网路

docker桥接模式