由於最近項目需驗證個問題,需求是要創建一個虛擬機網橋,在使用ifconfig命令查看時讓docker0網橋不在第一個顯示,因此,我們創建一個虛擬網橋讓它排在第一位置
項目使用Centos7系統,因此使用 brctl 創建網橋后可以使用 ifconfig 和 ip add兩種方法去配置IP地址
方法一:
查看網橋命令
#brctl show
[root@localhost opt]# brctl show
bridge name bridge id STP enabled interfaces docker0 8000.0242cffb9c2b no veth3d93fdb vetha55117d [root@localhost opt]#
這里已經有docker0網橋了,這個網橋是在啟動Docker Daemon時自動創建的。
添加網橋命令順序。
#brctl addbr br0 eth0 #eth0是要橋接的網卡的名稱。
我的就是eth1,所以我的命令就是
#brctl addbr ad0 eth1
給網橋添加ip地址 [root@localhost ~]# ifconfig ad0 172.10.0.1 [root@localhost ~]# 查看ip信息,可以發現添加了ad0網橋,且信息顯示在docker0上面 [root@localhost ~]# ifconfig ad0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.10.0.1 netmask 255.255.0.0 broadcast 172.10.255.255 inet6 fe80::2458:f7ff:fe24:b267 prefixlen 64 scopeid 0x20<link> ether 26:58:f7:24:b2:67 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 24 bytes 3644 (3.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:cfff:fefb:9c2b prefixlen 64 scopeid 0x20<link> ether 02:42:cf:fb:9c:2b txqueuelen 0 (Ethernet) RX packets 11453 bytes 44241445 (42.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 21146 bytes 1888772 (1.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.13.51 netmask 255.255.0.0 broadcast 172.16.255.255 inet6 fe80::79f:188f:ef14:5adb prefixlen 64 scopeid 0x20<link> ether 0c:da:41:1d:b0:ee txqueuelen 1000 (Ethernet) RX packets 31624069 bytes 6572205580 (6.1 GiB) RX errors 0 dropped 97100 overruns 0 frame 0 TX packets 1564839 bytes 164193902 (156.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
方法二:
除了默認的 docker0 網橋,用戶也可以指定網橋來連接各個容器。 在啟動 Docker 服務的時候,使用 -b BRIDGE或--bridge=BRIDGE 來指定使用的網橋。 如果服務已經運行,那需要先停止服務,並刪除舊的網橋。 $ sudo service docker stop $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0 然后創建一個網橋 bridge0。 $ 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 $ sudo service docker start 啟動 Docker 服務。新建一個容器,可以看到它已經橋接到了 bridge0 上。 可以繼續用 brctl show 命令查看橋接的信息。另外,在容器中可以使用 ip addr 和 ip route 命令來查看 IP 地址配置和路由信息。