docker-配置網橋-自定義網絡


                      容器網絡訪問原理
 橋接宿主機網絡 臨時生效: # 網橋名稱 br_name=br0 # 添加網橋 brctl addbr $br_name # 給網橋設置IP ip addr add 192.168.1.120/24 dev $br_name # 刪除已存在的eth0網卡配置 ip addr del 192.168.1.120/24 dev eth0 # 激活網橋 ip link set $br_name up # 添加eth0到網橋 brctl addif $br_name eth0 還需要在Docker啟動時橋接這個網橋: vi /etc/default/docker DOCKER_OPTS="-b=br0" service docker restart 第四章 網絡管理 永久生效: # vi /etc/network/interfaces auto eth0 iface eth0 inet static auto br0 iface br0 inet static address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 bridge_ports eth0 注意:以上配置是基於宿主機系統Ubuntu16.04,配置與CentOS7不同 講

                         Docker配置固定IP(跟物理機同網段)

  這是一個腳本:改下相關配置就能用

C_ID=$(docker run -itd --net=none ubuntu)
C_PID=$(docker inspect -f '{{.State.Pid}}' $C_ID)
# 創建network namespace目錄並將容器的network namespace軟連接到此目錄,以便ip netns命令讀取
mkdir -p /var/run/netns
ln -s /proc/$C_PID/ns/net /var/run/netns/$C_PID
# 添加虛擬網卡veth+容器PID,類型是veth pair,名稱是vp+容器PID
ip link add veth$C_PID type veth peer name vp$C_PID
# 添加虛擬網卡到br0網橋
brctl addif br0 veth$C_PID
# 激活虛擬網卡
ip link set veth$C_PID up
# 設置容器網絡信息
IP='192.168.1.123/24'
GW='192.168.1.1'
# 給進程配置一個network namespace
ip link set vp$C_PID netns $C_PID
# 在容器進程里面設置網卡信息
ip netns exec $C_PID ip link set dev vp$C_PID name eth0
ip netns exec $C_PID ip link set eth0 up
ip netns exec $C_PID ip addr add $IP dev eth0
ip netns exec $C_PID ip route add default via 192.168.1.1

 使用工具:

 pipework
如果你覺得使用上面命令比較復雜,也有別人封裝好的腳本:
git clone https://github.com/jpetazzo/pipework.git
cp pipework/pipework /usr/local/bin/
docker run -itd --net=none --name test01 ubuntu
pipework br0 test01 192.168.1.88/24@192.168.1.1

 Centos上面永久橋接配置:

在/etc/sysconfig/network-scripts/下

添加一個網橋的配置文件就可以了.

舉例說明

假設你原來eth0的信息如下
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="78:2B:CB:3C:A4:BA"
NM_CONTROLLD="yes"
ONBOOT="yes"
IPADDR=192.168.48.111
NETMASK=255.255.255.0
GATEWAY=192.168.48.1

注釋掉 BOOTPROTO

加入一行
vim /etc/sysconfig/network-scripts/ifcfg-eth0
BRIDGE="br0"

新建一個網橋配置文件

vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=ye
BOOTPROTO=static
PREFIX=24
IPADDR=192.168.48.111
NETMASK=255.255.255.0
GATEWAY=192.168.48.1
STP=on
DELAY=0

最后重啟網絡服務就可以了

/etc/init.d/network restart

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM