概念圖
小綠框為虛擬網卡,docker0為網橋,eth0為物理網卡
虛機網橋
docker會在宿主機上創建多個網橋(類型如Bridge、Host、None,默認的網橋docker0)
查看當前宿主機中的網橋:docker network ls
brctl工具
查看鏈接到網橋上的虛擬網口信息:brctl show docker0 (下載brctl工具:yum install -y bridge-utils)
每個容器都會分配一個網橋上的虛擬網口,並將docker0的IP地址設置為默認網關,容器發起的網絡流量通過宿主機的iptables規則進行轉發
Linux虛擬網絡技術
1.宿主機和容器各創建一個虛擬接口veth(組成一個veth pair)
2.宿主機虛擬接口連接到docker0網橋或指定網橋
3.容器中的虛擬網口修改名為eth0
4.從網橋中分配一個閑置的IP地址給容器eth0,並設置網關為docker0的IP網關
Bridge
# 查看網橋信息 docker network ls # 創建網橋 docker network create -d bridge my-bridge # 創建容器時指定網橋 docker run 容器ID --network=my-bridge # 查看my-bridge網橋的鏈接信息 docker network inspect my-bridge # 為容器添加一個網段(如172.1.17.1 -> 172.1.17.1、172.1.18.1),可以根據容器名ping通 docker network connect my-bridge 容器ID