ocker安裝時(shí)會(huì)創(chuàng)建一個(gè)名為docker0的虛擬網(wǎng)橋。除非我們進(jìn)行另外的配置饺汹,新創(chuàng)建的容器都會(huì)自動(dòng)連接到這個(gè)虛擬網(wǎng)橋提供的風(fēng)格蛔添,bridge網(wǎng)絡(luò)用于同一主機(jī)上的docker容器相互通信宋梧,連接到同一個(gè)網(wǎng)橋的docker容器可以相互通信岂却。
`docker network ``ls`
bridge 對(duì)宿主機(jī)來講相當(dāng)于一個(gè)單獨(dú)的網(wǎng)卡設(shè)備 對(duì)于運(yùn)行在宿主機(jī)上的每個(gè)容器來說相當(dāng)于一個(gè)交換機(jī)居砖,所有容器的虛擬網(wǎng)線的一端都連接到docker0上腾务。
容器通過本地主機(jī)進(jìn)行上網(wǎng)毕骡,容器會(huì)創(chuàng)建名為veth的虛擬網(wǎng)卡,網(wǎng)卡一端連接到docker0網(wǎng)橋岩瘦,另一端連接容器未巫,容器就可以通過網(wǎng)橋通過分配的IP地址進(jìn)行上網(wǎng)。
我們也可以自定義自己的bridge網(wǎng)絡(luò)启昧,docker文檔建議使用自定義bridge網(wǎng)絡(luò)
bridge模式實(shí)例
導(dǎo)入容器并啟動(dòng)
docker load < /share/images/httpd.tar
docker run -d --name httpd -p 80:80 httpd
驗(yàn)證
docker exec -it httpd cat /etc/hosts
創(chuàng)建自定義網(wǎng)絡(luò)
建一個(gè)自定義網(wǎng)絡(luò), 可以指定子網(wǎng)叙凡、IP地址范圍、網(wǎng)關(guān)等網(wǎng)絡(luò)配置
docker network create --driver bridge --subnet 172.22.16.0 /24 --gateway 172.22.16.1 mynet2
查看docker網(wǎng)絡(luò)密末,是否創(chuàng)建成功
docker network ls
查看自定義網(wǎng)絡(luò)的細(xì)節(jié)
brctl show
ifconfig
docker network inspect mynet2
創(chuàng)建容器bb1,連接到自定義網(wǎng)絡(luò),并進(jìn)入容器驗(yàn)證,可以看到該容器的ip地址為172.22.16.2
docker run --name bb1 -it --network mynet2 busybox:latest
ifconfig
驗(yàn)證后按Ctrl+P后,再按Ctrl+Q,從bb1容器退回到主機(jī)環(huán)境而不關(guān)閉容器bb1
再創(chuàng)建一個(gè)容器bb2狭姨,也連接到網(wǎng)絡(luò)mynet2中
docker run --name bb2 --network mynet2 -it busybox:latest
進(jìn)入容器,訪問bb1容器的ip地址,進(jìn)行驗(yàn)證
ping 172.22.16.2
會(huì)得到如下 類似回復(fù)
PING 172.22.16.2 (172.22.16.2): 56 data bytes
64 bytes from 172.22.16.2: seq=0 ttl=64 time=0.439 ms
64 bytes from 172.22.16.2: seq=1 ttl=64 time=0.140 ms
64 bytes from 172.22.16.2: seq=2 ttl=64 time=0.129 ms
總結(jié)
Docker網(wǎng)絡(luò)bridge橋接模式,是創(chuàng)建和運(yùn)行容器時(shí)默認(rèn)模式苏遥。這種模式會(huì)為每個(gè)容器分配一個(gè)獨(dú)立的網(wǎng)卡饼拍,橋接到默認(rèn)或指定的bridge上,同一個(gè)Bridge下的容器下可以互相通信的田炭。我們也可以創(chuàng)建自定義bridge以滿足個(gè)性化的網(wǎng)絡(luò)需~~~