1. 程式人生 > >centos7 docker宿主機配置橋接物理網絡終極實戰

centos7 docker宿主機配置橋接物理網絡終極實戰

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宿主機配置橋接物理網絡終極實戰