docker夸主机访问,实现自定义网桥

要实现docker的夸主机访问,我们需要实现自定义网桥

1、ubuntu下安装网桥管理工具:

sudo apt-get install bridge-utils

默认情况下,docker启动的时候会创建并配置一个网络接口在linux的内核中;如果你已经启动并运行了docker,默认情况下会创建并配置好docker0的网桥。

参见地址:https://docs.docker.com/engine/userguide/networking/default_network/custom-docker0/(Customize the docker0 bridge)

参见地址:https://docs.docker.com/engine/userguide/networking/default_network/build-bridges/(Build your own bridge)

查看当前的网桥以及接入网桥的网卡:

sudo brctl show

2、创建自己的网桥,并指定docker使用新的网桥

首先,停止docker服务,并移除docker0网桥:

# 停止docker服务,并移除docker0网桥
sudo service docker stop
sudo ip link set dev docker0 down
sudo brctl delbr docker0
sudo iptables -t nat -F POSTROUTING

然后,创建自己的网桥:

#创建自己的网桥
sudo brctl addbr bridge0
sudo ip addr add 192.168.5.1/24 dev bridge0
sudo ip link set dev bridge0 up

# 确认你创键的网桥是否正常运行
ip addr show bridge0
#如下即正常运行
4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
    link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.1/24 scope global bridge0
       valid_lft forever preferred_lft forever

#设置docker默认使用新的网桥
echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
或者使用,来定义网段:
DOCKER_OPTS="-b=br0 --fixed-cidr='192.168.8.128/26'" #为docker指定了网段
echo $
DOCKER_OPTS >> /etc/default/docker

#启动docker服务 
sudo service docker start

#
检查docker运行参数是否有-b=br0
ps -ef |grep docker

此处可参考:http://wiki.jikexueyuan.com/project/docker-technology-and-combat/bridge.html

注意:通过brctl创建的网桥在重启系统后将无效,如果需要永久生效,需要编辑/ett/network/interfaces文件,加入如下:

auto bridge0
iface bridge0 inet static
address 192.168.8.157
netmask 255.255.255.0
getway 192.168.8.1
bridge_ports eth0

使用ifconfig查看,如果现实bridge0网桥,并且没有显示docker0网桥,说明docker已经默认使用了bridge0网桥

可以使用brctl show查看系统中的网桥

如果此时启动一个docker容器,同时使用brctl show 查看,可以看到新启动的容器默认使用的是bridge0网桥

 

附加:

注意:通过brctl addbr bridge0添加的网桥重启后将会失效,想下次启动的时候任然保持配置需要编辑:

/etc/network/interfaces 文件,添加:

auto br0
iface br0 inet static
address 192.168.8.130
netmask 255.255.255.0
geteway 192.168.8.1
bridge_ports enp0s3  #为新建的网桥链接本地的物理网卡

 

 

注意:笔者配置完成后再启动docker服务的时候,发现docker0网桥还在,同时启动容器后,容器默认使用的还是docker0网桥,这块其实笔者配置并没有通过,也不是道是什么原因,还在查

posted @ 2016-08-14 14:48  远洪  阅读(904)  评论(0编辑  收藏  举报