docker支持橋接模式;Docker網(wǎng)絡(luò)bridge橋接模式是創(chuàng)建和運行容器時默認(rèn)模式,這種模式會為每個容器分配一個獨立的網(wǎng)卡,橋接到默認(rèn)或指定的bridge上,同一個Bridge下的容器下可以互相通信。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker-1.13.1版、Dell G3電腦。
docker支持橋接模式嗎
Docker安裝時會創(chuàng)建一個名為docker0的虛擬網(wǎng)橋。除非我們進行另外的配置,新創(chuàng)建的容器都會自動連接到這個虛擬網(wǎng)橋提供的風(fēng)格,bridge網(wǎng)絡(luò)用于同一主機上的docker容器相互通信,連接到同一個網(wǎng)橋的docker容器可以相互通信。
bridge 對宿主機來講相當(dāng)于一個單獨的網(wǎng)卡設(shè)備 對于運行在宿主機上的每個容器來說相當(dāng)于一個交換機,所有容器的虛擬網(wǎng)線的一端都連接到docker0上。
容器通過本地主機進行上網(wǎng),容器會創(chuàng)建名為veth的虛擬網(wǎng)卡,網(wǎng)卡一端連接到docker0網(wǎng)橋,另一端連接容器,容器就可以通過網(wǎng)橋通過分配的IP地址進行上網(wǎng)。
我們也可以自定義自己的bridge網(wǎng)絡(luò),docker文檔建議使用自定義bridge網(wǎng)絡(luò),
bridge模式實例
導(dǎo)入容器并啟動
docker load < /share/images/httpd.tar docker run -d --name httpd -p 80:80 httpd
驗證
docker exec -it httpd cat /etc/hosts
創(chuàng)建自定義網(wǎng)絡(luò)
創(chuàng)建一個自定義網(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ò),并進入容器驗證,可以看到該容器的ip地址為172.22.16.2
docker run --name bb1 -it --network mynet2 busybox:latest ifconfig
驗證后我們按Ctrl+P后,再按Ctrl+Q,從bb1容器退回到主機環(huán)境而不關(guān)閉容器bb1
再創(chuàng)建一個容器bb2,也連接到網(wǎng)絡(luò)mynet2中
docker run --name bb2 --network mynet2 -it busybox:latest
進入容器,訪問bb1容器的ip地址,進行驗證
ping 172.22.16.2
會得到如下 類似回復(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)建和運行容器時默認(rèn)模式。這種模式會為每個容器分配一個獨立的網(wǎng)卡,橋接到默認(rèn)或指定的bridge上,同一個Bridge下的容器下可以互相通信的。我們也可以創(chuàng)建自定義bridge以滿足個性化的網(wǎng)絡(luò)需求。
推薦學(xué)習(xí):《docker視頻教程》