Docker網絡:bridge橋接模式


轉自:https://www.freeaihub.com/article/bridge-module-in-docker-network.html

 

docker網絡

在前兩篇Docker 網絡:host模式Docker 網絡:container模式中我們已經介紹Docker網絡模型中的host模式與container模式。本節將對Docker網絡模型中的bridge模型,即橋接模式進行理論介紹,再通過案例的實操,讓您更好地去理解docker網絡中的橋接模式。

bridge橋接模式

Docker安裝時會創建一個名為docker0的虛擬網橋。除非我們進行另外的配置,新創建的容器都會自動連接到這個虛擬網橋提供的風格,bridge網絡用於同一主機上的docker容器相互通信,連接到同一個網橋的docker容器可以相互通信。

  1. docker network ls
language-bash

bridge 對宿主機來講相當於一個單獨的網卡設備 對於運行在宿主機上的每個容器來說相當於一個交換機,所有容器的虛擬網線的一端都連接到docker0上。

容器通過本地主機進行上網,容器會創建名為veth的虛擬網卡,網卡一端連接到docker0網橋,另一端連接容器,容器就可以通過網橋通過分配的IP地址進行上網。

我們也可以自定義自己的bridge網絡,docker文檔建議使用自定義bridge網絡,

bridge模式實例

橋接1

導入容器並啟動

  1. docker load < /share/images/httpd.tar
  2. docker run -d --name httpd -p 80:80 httpd
language-bash

驗證

  1. docker exec -it httpd cat /etc/hosts
language-bash

創建自定義網絡

橋接2

創建一個自定義網絡, 可以指定子網、IP地址范圍、網關等網絡配置

  1. docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 mynet2
language-bash

查看docker網絡,是否創建成功。

  1. docker network ls
language-bash

查看自定義網絡的細節

  1. brctl show
language-bash
  1. ifconfig
language-bash
  1. docker network inspect mynet2
language-bash

創建容器bb1,連接到自定義網絡,並進入容器驗證,可以看到該容器的ip地址為172.22.16.2

  1. docker run --name bb1 -it --network mynet2 busybox:latest
language-bash
  1. ifconfig
language-bash

驗證后我們按Ctrl+P后,再按Ctrl+Q,從bb1容器退回到主機環境而不關閉容器bb1

再創建一個容器bb2,也連接到網絡mynet2中

  1. docker run --name bb2 --network mynet2 -it busybox:latest
language-bash

進入容器,訪問bb1容器的ip地址,進行驗證

  1. ping 172.22.16.2
language-bash

會得到如下 類似回復

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

總結

Docker網絡bridge橋接模式,是創建和運行容器時默認模式。這種模式會為每個容器分配一個獨立的網卡,橋接到默認或指定的bridge上,同一個Bridge下的容器下可以互相通信的。我們也可以創建自定義bridge以滿足個性化的網絡需求。


免責聲明!

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



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