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