【Docker】Docker network之bridge、host、none、container以及自定義網絡的詳細講解

🚀歡迎來到本文🚀
🍉個人簡介:陳童學哦,目前學習C/C++、算法、Python、Java等方向,一個正在慢慢前行的普通人。
🏀系列專欄:陳童學的日記
💡其他專欄:C++STL,感興趣的小伙伴可以看看。
🎁希望各位→點贊👍 + 收藏?? + 留言📝 ?
??萬物從心起,心動則萬物動🏄?♂?

在這里插入圖片描述

前言:Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux系統 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。


之前文章我們提及過Docker network以及幾種網絡模式,但沒有過多的深入,那么本文就會深入講解一下Dockernetwork的bridge、host、none、container以及自定義網絡。

Docker network之bridge、host、none、container以及自定義網絡的詳細講解

  • Docker network 之bridge
  • Docker network 之host
  • Docker network 之none
  • Docker network 之container
  • Docker network 之自定義網絡

Docker network 之bridge

在Docker中,bridge網絡是默認的網絡驅動程序,它提供了一種簡單而方便的方式來連接Docker容器和主機。下面是關于Docker bridge網絡的詳細講解:

1.概述:
??Bridge網絡允許容器之間通過網絡進行通信,并且容器可以通過主機網絡訪問外部資源。每當你安裝Docker時,就會自動創建一個名為"docker0"的虛擬網橋,作為主機和容器之間通信的橋接點。
2.橋接方式:
??ridge網絡采用的是基于MAC地址的橋接方式,每個容器都會分配一個唯一的MAC地址,并且可以通過容器名稱或ID進行通信。
3.IP分配:
??每個容器在啟動時都會自動分配一個IP地址,這個IP地址是在橋接網絡的地址范圍內生成的。默認情況下,Docker使用172.17.0.0/16子網作為橋接網絡的地址范圍。
4.連接到橋接網絡:
??可以使用--network參數來指定容器連接到哪個橋接網絡。如果沒有指定網絡,則默認連接到bridge網絡。可以使用docker network create命令創建自定義的橋接網絡,并使用--network參數將容器連接到該網絡。
5.主機訪問:
??通過橋接網絡,容器可以通過主機網絡訪問外部資源,例如互聯網或其他本地網絡。橋接網絡會自動配置主機和容器間的路由規則,使得容器可以通過主機進行網絡通信。
6.容器之間通信:
??橋接網絡允許容器之間通過IP地址進行通信,可以使用容器的名稱或ID來標識目標容器。例如,可以使用ping命令來測試容器之間的連通性。
7.網絡別名:
??橋接網絡還支持為容器分配多個網絡別名,這樣可以在同一網絡中使用不同的名稱訪問容器。這在容器之間進行服務發現和負載均衡時非常有用。

在這里插入圖片描述

??總結來說,Docker bridge網絡提供了容器之間和容器與主機之間的通信方式,并且可以連接到外部網絡資源。它是Docker默認的網絡驅動程序,通過橋接方式實現容器之間的通信,并自動分配IP地址和配置路由規則。

Docker network 之host

在Docker中,host網絡是一種網絡驅動程序,它允許容器與主機共享網絡命名空間。使用host網絡驅動程序時,容器將直接使用主機的網絡棧,與主機共享IP地址和端口。下面是關于Docker host網絡的詳細講解:

1.網絡共享:
??使用host網絡時,容器與主機共享相同的網絡棧,這意味著它們具有相同的IP地址和端口空間。容器可以直接使用主機的網絡設備和網絡配置。
2.網絡性能:
??由于容器直接使用主機的網絡棧,host網絡驅動可以獲得最佳的網絡性能。容器之間的通信不需要通過任何網絡層的封裝和解封裝,減少了網絡延遲和開銷。
3.網絡隔離:
??與其他網絡驅動程序相比,host網絡提供了最小的網絡隔離。容器之間可以直接訪問彼此的端口和服務,沒有任何網絡地址轉換或端口映射。
4.端口沖突:
??由于容器與主機共享相同的端口空間,可能會導致端口沖突。如果主機上已經有一個服務在使用某個端口,那么容器將無法使用該端口。
5.容器訪問外部資源:
??容器可以通過host網絡直接訪問主機網絡和外部資源,例如互聯網或其他本地網絡。容器可以使用主機的網絡設備和配置,無需進行任何額外的網絡設置。

需要注意的是,使用host網絡可能會降低容器的安全性和隔離性。由于容器與主機共享網絡棧,容器之間可以直接相互訪問,這可能增加了潛在的安全風險。因此,在使用host網絡時,需要謹慎考慮網絡安全和隔離性的需求。

在這里插入圖片描述


??總結起來,Docker host網絡允許容器與主機共享網絡棧,具有最佳的網絡性能,容器可以直接訪問主機網絡和外部資源。但需要注意可能的端口沖突和降低的安全性和隔離性。

Docker network 之none

在Docker中,none網絡是一種特殊的網絡驅動程序,它提供了一種完全隔離的網絡環境,即容器將沒有任何網絡連接。下面是關于Dockernone網絡的詳細講解:

1.完全隔離:
??使用none網絡時,容器將沒有任何網絡連接,包括網絡接口和IP地址。這意味著容器無法通過網絡與其他容器或主機進行通信。
2.適用場景:
??none網絡適用于那些不需要網絡連接的容器,例如一些執行計算任務的容器或需要與外部環境完全隔離的容器。
3.容器訪問外部資源:
?? 由于容器沒有任何網絡連接,因此無法直接訪問主機網絡或外部資源,例如互聯網或其他本地網絡。如果需要訪問外部資源,可以通過其他方式,如使用主機的網絡連接或使用其他網絡驅動程序。
4.網絡配置:
?? 當使用none網絡時,容器不會分配IP地址,也不會創建任何網絡接口。這使得容器無法通過網絡進行通信,并且無法通過IP地址來標識和訪問容器。
5.容器之間通信:
?? 由于none網絡不提供任何網絡連接,容器之間無法直接進行通信。如果需要容器之間的通信,可以考慮使用其他網絡驅動程序,如bridge、overlay等。

需要注意的是,使用none網絡將完全隔離容器的網絡環境,這可能導致容器無法完成某些需要網絡連接的任務,或者無法訪問外部資源。因此,在使用none網絡時,需要確保已經考慮到了這些限制,并根據實際需求做出合適的選擇。


?? 總結來說,Docker none網絡提供了一種完全隔離的網絡環境,容器在該網絡中沒有任何網絡連接。它適用于不需要網絡連接的容器,但也意味著容器無法通過網絡與其他容器或主機進行通信,并且無法訪問外部資源。

Docker network 之container

在Docker中,container網絡是一種特殊的網絡模式,它允許將一個容器的網絡棧直接共享給另一個容器使用。這樣可以實現容器之間的網絡通信,而無需通過網絡接口和網絡配置。下面是關于Docker container網絡的詳細講解:

1.容器網絡共享:
?? 使用container網絡模式時,一個容器的網絡棧(包括網絡接口和IP地址)可以直接共享給另一個容器使用。這樣,兩個容器之間可以通過本地主機進行內部通信,就像它們運行在同一個主機上一樣。
2.網絡隔離:
??盡管容器之間可以通過共享網絡棧進行通信,但它們仍然是相互隔離的。每個容器都有自己的文件系統、進程和命名空間,因此它們之間的環境是獨立的。
3.網絡配置:
??當一個容器連接到另一個容器的網絡時,它會自動獲得一個新的網絡接口和IP地址。這個IP地址是在共享網絡的子網中生成的,并且可以通過容器名稱或ID進行訪問。
4.容器之間通信:
??通過container網絡模式,容器可以直接使用本地主機進行內部通信。它們可以通過IP地址或容器名稱進行標識和訪問。
5.網絡別名:
??使用container網絡模式時,可以為容器分配多個網絡別名。這樣,可以使用不同的名稱訪問同一個容器,這對于服務發現和負載均衡非常有用。
6.容器訪問外部資源:
??由于container網絡模式是基于主機網絡的,因此容器可以通過本地主機訪問外部資源,例如互聯網或其他本地網絡。

需要注意的是,使用container網絡模式將共享一個容器的網絡棧給另一個容器使用,這可能會導致網絡性能的損失。同時,由于容器之間共享網絡,需要確保容器之間的通信是安全和可靠的。

在這里插入圖片描述


總結來說,Docker container網絡模式允許一個容器的網絡棧直接共享給另一個容器使用,實現容器之間的內部通信。它提供了簡單且高效的方式來連接容器,并允許容器通過本地主機訪問外部資源。

Docker network 之自定義網絡

在Docker中,自定義網絡是一種靈活且強大的網絡模式,它允許用戶創建和管理自己的網絡。自定義網絡提供了一種邏輯隔離的網絡環境,使得容器可以在該網絡中進行通信。下面是關于Docker自定義網絡的詳細講解:

1.創建自定義網絡:
??使用Docker命令或Docker Compose可以創建自定義網絡。用戶可以指定網絡的名稱、網、網關和其他配置選項。
2.網絡隔離:
??每個自定義網絡都是一個邏輯隔離的網絡環境,容器可以在該網絡中進行通信。不同的自定義網絡之間是相互隔離的,容器只能在同一個自定義網絡中進行通信。
3.容器連接到自定義網絡:
??創建自定義網絡后,可以將容器連接到該網絡。容器連接到自定義網絡后,會獲得一個新的網絡接口和IP地址,可以通過該IP地址在同一網絡中進行通信。
4.網絡別名和服務發現:
??使用自定義網絡,可以為容器分配網絡別名。這樣,可以通過容器名稱或別名來標識和訪問容器,而不僅僅是使用IP地址。這對于服務發現和負載均衡非常有用。
5.外部訪問:
??通過端口映射,可以將自定義網絡中的容器暴露給外部網絡,以便從外部網絡訪問容器。這可以通過將容器的端口映射到主機的端口來實現。
6.多網絡連接:
??容器可以連接到多個自定義網絡,以實現不同網絡環境之間的通信。這使得容器可以同時參與多個網絡,并實現復雜的網絡拓撲。
7.網絡驅動程序:
??Docker支持多種網絡驅動程序,包括bridge、overlay和macvlan等。自定義網絡可以選擇適合特定需求的驅動程序,以獲得所需的網絡功能和性能。

在這里插入圖片描述

總結來講,Docker自定義網絡提供了一種靈活且強大的網絡模式,允許用戶創建和管理自己的網絡。自定義網絡提供了邏輯隔離和靈活的網絡配置選項,使得容器可以在該網絡中進行通信,并支持服務發現和負載均衡等功能。


如果本文對大家有所幫助的話,還望各位能給我點贊、收藏并評論一下,感謝各位💕!!! 另如果大家有什么疑問或者建議的話,歡迎評論區留言。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39548.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39548.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39548.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TCP/IP網絡江湖初探:物理層的奧秘與傳承(物理層上篇-基礎與本質)

〇、引言 在這個數字時代,計算機網絡如同廣袤的江湖,數據在其中暢游,信息傳遞成為了生活的常態。然而,在這個充滿虛擬奇觀的網絡江湖中,隱藏著一個不容忽視的存在,那就是物理層,這個江湖的基石。就如同江湖中的土地一樣,物理層作為計算機網絡的基礎,承載著數據的最初轉…

STM32 CubeMX (uart_IAP串口)簡單示例

STM32 CubeMX STM32 CubeMX (串口IAP) STM32 CubeMXIAP有什么用?整體思路 一、STM32 CubeMX 設置時鐘樹UART使能UART初始化設置 二、代碼部分文件移植![在這里插入圖片描述](https://img-blog.csdnimg.cn/0c4841d8328b4169a8833f15fe3d670c.p…

PHP Smarty中的緩存如何實現?

歡迎來到PHP Smarty的緩存世界!這里是一個簡單的指南,幫助你理解如何在這個強大的模板引擎中啟用和配置緩存。 首先,讓我們先了解一下什么是緩存。簡單來說,緩存就是將需要花費大量時間處理的數據或資源存儲起來,以便…

2023/8/16總結

這幾天完成了私信的功能點,用websocket做的。 這是大概的界面,參考的是微信 用戶可以搜索好友: 如果不存在是下面這樣,存在就會在左邊的聊天里面顯示有這個人選項 發送消息 接下來需要把推薦算法給做了

文件IO編程 1 2

頭文件包含路徑 linux 操作系統分為兩大空間:用戶空間和內核空間 這樣劃分,是為了保護內核的核心組件,不被輕易訪問和修改 系統調用:安全的訪問內核空間 其核心是:函數API(API:用戶編程接口&…

svn文章五:問題排查與修復 - 出了問題怎么辦?SVN故障排除與修復指南

文章五:問題排查與修復 - “出了問題怎么辦?SVN故障排除與修復指南” 概述:在使用SVN時,難免會遇到一些問題和錯誤。在這篇文章中,我們將教您如何進行故障排查和修復,保護您的SVN倉庫和數據安全。 1. 引言…

K8S系列文章之 Docker安裝使用Kafka

通過Docker拉取鏡像的方式進行安裝 照例先去DockerHub找一下鏡像源,看下官方提供的基本操作(大部分時候官方教程比網上的要清晰一些,并且大部分教程可能也是翻譯的官方的操作步驟,所以直接看官方的就行) 老實說Kafka…

“深入剖析JVM內部原理:解密Java虛擬機的奧秘“

標題:深入剖析JVM內部原理:解密Java虛擬機的奧秘 摘要:本文將深入探討Java虛擬機(JVM)的內部原理,包括其架構、內存管理、垃圾回收機制、即時編譯器等關鍵組成部分。通過解密JVM的奧秘,我們將更…

【Vue3】Vue3 UI 框架 | Element Plus —— 創建并優化表單

安裝 # NPM $ npm install element-plus --save // 或者(下載慢切換國內鏡像) $ npm install element-plus -S// 可以選擇性安裝 less npm install less less-loader -D // 可以選擇性配置 自動聯想src目錄Element Plus 的引入和注入 main.ts import…

解決VSCode CPU高占問題的方法

如果你也遇到VSCode的CPU占用過高的問題,可以嘗試使用官方自帶的插件Bisect(擴展二分查找)功能來查找具體是哪個擴展出了問題。 找到“糟糕”的擴展可能很容易,也可能很困難。 打開擴展視圖 ( CtrlShiftX ),禁用擴展&…

網絡:雜記

1. 完成鏈路認證后,STA會繼續發起鏈路服務協商,具體的協商是通過Association報文實現。 2. RSTP可以提高收斂速度的原因: RSTP的拓撲變化機制 Proposal/Agreement機制 根端口快速切換機制 邊緣端口的引入

git cherry-pick

cherry-pick命令的基本用法 對于多分支的代碼庫,將代碼從一個分支轉移到另一個分支是常見需求。這時分兩種情況。一種情況是,你需要另一個分支的所有代碼變動,那么就采用合并( git merge )。另一種情況是,…

總結 TCP 協議的相關特性

TCP協議段格式: 如圖, 端口號: 是其中一個重要的部分,知道端口號才能確認數據交給哪個應用程序(端口號屬于傳輸層的概念). 4位首部長度:4bit表示的范圍是0->15,在此處,單位是"4字節",因此,將這里的數值 * 4,才是真正的報頭長度,即TCP 報頭最大長度,60…

Cenos7 搭建Minio最新版集群部署服務器(一)

------> 道 | 法 | 術 | 器 | 勢 <------ 多臺服務器間免密登錄|免密拷貝 Cenos7 搭建Minio集群部署服務器(一) Cenos7 搭建Minio集群Nginx統一訪問入口|反向動態代理(二) Spring Boot 與Minio整合實現文件上傳與下載(三) CentOS7的journalctl日志查看方法 …

已知四個坐標點,怎樣求出四邊形的四個內角

1&#xff0c;理論 最簡單的方式利用向量進行求解 如圖可得&#xff1a; cosθa*b/&#xff08;|a|*|b|&#xff09; 已知三點坐標&#xff0c;很容易可以得到兩向量之積a*b&#xff0c;以及每個的模值 2&#xff0c;四個角度求解過程 首先&#xff0c;我們定義了四個坐標點…

在數字游民天堂,Polkadot Hubs 探索建設更緊密的全球社區

分布式辦公是 Web3 行業的協作常態&#xff0c;當數字游民們享受著線上遠程工作的自由和便捷時&#xff0c;也在懷念著一種面對面與他人交流與共創的經歷。共享空間隨之興起&#xff0c;為許多初創項目公司提供開放舒適的環境&#xff0c;卻難以在不同的人群之間搭起一張巨大的…

系統架構設計師考試大綱(2017年)

1.考試目標 考試合格人員應能夠根據系統需求規格說明書,結合應用領域和技術發展的實際情況,考慮有關約束條件,設計正確、合理的軟件架構,確保系統架構具有良好的特性;能夠對項目系統架構進行描述、分析、設計與評估;能夠按照相關標準編寫相應的設計文檔;能夠與系統分析師…

完美解決Github提交PR后報錯:File is not gofumpt-ed (gofumpt)

問題闡述 最近在Github上提交PR后&#xff0c;遇到了這么一個問題&#xff1a;golangci-lint運行失敗&#xff0c;具體原因是File is not gofumpt-ed (gofumpt)。 名詞解釋 golangci-lint&#xff1a; golangci-lint 是Go語言社區中常用的代碼質量檢查工具&#xff0c;它可以…

react中使用shouldComponentUpdate生命周期函數調用setState引起的無限循環的錯誤

場景&#xff1a; 在 React 組件中&#xff0c;當在 componentWillUpdate 或 componentDidUpdate 生命周期方法中調用 setState 時&#xff0c;會觸發無限循環&#xff0c;導致超過最大更新深度。 錯誤原因 在React組件中 &#xff0c;我們使用componentWillUpdate 或 componen…

Windows 2016安裝Jenkins

Jenkins 下載&#xff0c;安裝 下載OpenJDK 11 for Wndows 兩種方式 choco install openjdk11 https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20%2B8/OpenJDK11U-jdk_x64_windows_hotspot_11.0.20_8.msi how to enable administrator user to …