docker 容器網絡管理

      網友投稿 1422 2022-05-30

      容器的網絡默認與宿主機、與其他容器相互隔離,且容器中可以運行一些網絡應用,比如nginx、web應用、數據庫等,如果需要讓外部也可以訪問這些容器中運行的網絡應用,那么就需要配置網絡來實現。

      同樣的,不同需求下,容器與宿主機的通信有不同的業務狀態這時候就需要容器網絡管理以達成管理不同業務下相關的網絡配置。

      bridge network(網橋)模式:默認的網絡模式,類似虛擬機的nat模式

      host network(主機)模式:容器與宿主機之間的網絡無隔離,即容器直接使用宿主機網絡

      none network模式:容器禁用所有網絡

      overlay network(覆蓋)模式:利用vxlan實現的bridge模式

      macvlan network模式:容器具備MAC地址,使其在外部看來是一臺真實的網絡設備

      命令格式: docker network ls [參數]

      常用參數:

      -q 只顯示網絡對象的ID

      注意: docker安裝之后,會自動創建bridge、host、none三種網絡驅動。

      命令格式:docker network create [參數] 網絡

      常用參數:

      -d 指定網絡的驅動,不指定默認為bridge -- subnet 指定子網網段(192.168.0.0/16) -- ip-range 指定容器的IP范圍 -- gateway 子網的網關

      注意:

      創建網絡部分參數,涉及到網絡工程師相關的知識,這里不做詳細介紹有需要可以參考「計算機網絡」這本書,內有詳解。

      host、none模式的網絡只能存在一個,再次創建會報錯。

      overlay網絡創建依賴于docker swarm(集群負載均衡)服務

      刪除一個或多個網絡

      命令格式:docker network rm 網絡[網絡…]

      命令格式:

      docker network inspect [參數] 網絡

      docker inspect [參數] 網絡

      常用參數:

      -f 根據format輸出結果

      命令格式:docker run/create --network 網絡

      注意:默認情況下,docker創建或啟動容器時,會默認使用名為bridge的網絡

      命令格式:

      docker network connect/disconnect [參數] 網絡 容器

      常用參數:

      -f 強制斷開連接

      bridge網絡模式的特點:

      宿主機上需要單獨的bridge網卡,如默認docker默認創建的docker0。

      容器之間、容器與主機之間的網絡通信,是借助為每一個容器生成的一對veth pair虛擬網絡設備對,進行通信的。一個在容器上,另一個在宿主機上。(這是網橋)

      每創建一個基于bridge網絡的容器,都會自動在宿主機上創建一個veth**虛擬網絡設備。

      外部無法直接訪問容器。需要建立端口映射才能訪問。(可以理解為網卡)

      容器借由veth虛擬設備通過如docker0這種bridge網絡設備進行通信。

      每一容器具有單獨的IP

      bridge網絡模式下宿主機與容器服務使用的端口可以重復

      bridge網絡模式下的端口映射

      根據上面關于bridge的特點我們可以知道訪問bridge網絡模式的設備,需要端口映射。

      端口映射的命令格式:docker run/create -P/-p

      命令參數:

      -P 將容器內部所有暴露端口進行隨機映射 -p 手動指定端口映射 (-p [宿主機IP] : [宿主機端口] : 容器端口)

      關于-p參數的舉例:

      -p ::80 將容器的80端口隨機映射到宿主機的隨機IP上 -p :8000:6379 將容器的6379端口映射到宿主機的任意IP的8000端口上

      host網絡模式的特點:

      容器完全共享宿主機的網絡,網絡沒有隔離。宿主機的網絡就是容器的網絡。

      容器、主機上的應用所使用的端口不能重復。

      外部可以直接訪問容器,不需要端口映射

      容器IP就是宿主機的IP

      除了普通的host網絡模式外,同樣還有特殊版本的host網絡模式(container網絡模式)。

      container網絡模式的特點:

      其實就是容器共享其他容器的網絡,相當于該容器,在網絡層面上,將其他容器作為“主機”。它們之間的網絡沒有隔離。

      container網絡模式的使用:

      docker run/create --network container:容器

      docker 容器的網絡管理

      none網絡模式的特點:

      容器上沒有網絡,也無需任何網絡設備

      如果需要使用網絡,需要用戶自行安裝與配置

      overlay網絡模式的特點:

      overlay網絡模式實現方案有很多種,在Docker自身集成了一種,基于VXLAN隧道技術實現

      overlay網絡主要用于實現跨主機容器之間的通信

      macvlan網絡模式的特點:

      macvlan的主要特點就是通信直接基于mac地址進行轉發

      在macvlan中宿主機擔任的角色是一臺二層交換機,docker會維護一張mac地址表,當宿主機收到數據包時,直接根據mac地址找到對應的容器

      而在容器內部互相通信的時候,容器直接使用IP互通,所以每個容器對于外面的網絡都是一臺真實的網絡設備

      這次文章主要復習了docker的網絡管理的內容,其中host,bridge,container是主要的復習內容,且在三種網絡模式中建議優先選用host網絡模式,其使用性能最優。

      Docker 網絡

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:為什么企業需要CRM系統?CRM的作用及其重要性分析
      下一篇:2019年Java大廠面試題講解(周陽) 之Volatile和JMM內存模型的可見性
      相關文章
      怡红院亚洲红怡院在线观看| 色偷偷女男人的天堂亚洲网| 亚洲成av人片天堂网无码】| 亚洲精品一二三区| 久久精品国产亚洲αv忘忧草| 久久久久久久亚洲Av无码| 久久精品国产96精品亚洲 | 亚洲综合无码一区二区痴汉| 亚洲婷婷在线视频| 亚洲国产美女在线观看| 亚洲国产成人久久99精品| 亚洲人色大成年网站在线观看| 亚洲国产情侣一区二区三区| 亚洲经典在线观看| 亚洲六月丁香六月婷婷色伊人| 亚洲二区在线视频| 亚洲色无码国产精品网站可下载| 亚洲欧美日韩中文无线码 | 亚洲AV性色在线观看| 亚洲av永久中文无码精品综合 | 亚洲精品国产高清在线观看| 亚洲а∨精品天堂在线| 亚洲日韩在线中文字幕综合| 国产精品亚洲AV三区| 亚洲Av无码乱码在线观看性色| 国产成人毛片亚洲精品| 亚洲欧洲精品无码AV| 亚洲AV永久无码精品一百度影院 | 亚洲成色999久久网站| 久久精品亚洲中文字幕无码麻豆| 亚洲成a人片77777群色| 国产成人精品日本亚洲专| 亚洲色成人网站WWW永久四虎| 国产精品亚洲lv粉色| 亚洲中久无码不卡永久在线观看| 亚洲人成伊人成综合网久久久| 亚洲AV无码成人精品区在线观看 | 久久精品国产亚洲一区二区三区| 亚洲人成在线播放网站| 亚洲午夜精品久久久久久人妖| 亚洲国产成人精品无码一区二区 |