Docker學習筆記-網絡類型

Docker 網絡類型

1、Docker四種網絡模式

(1)docker四種網絡模式如下:

  • Bridge contauner 橋接式網絡模式
  • Host(open) container 開放式網絡模式
  • Container(join) container 聯合掛載式網絡模式,是host網絡模式的延伸
  • None(Close) container 封閉式網絡模式

(2)可以通過docker network命令查看

在這里插入圖片描述

(3)docker run --net 命令可以指定使用網絡模式


2、Bridge模式

當Docker進程啟動時,會在主機上創建一個名為docker0的虛擬網橋,處于七層網絡模型的數據鏈路層,起到了交換機的作用,此主機上啟動的Docker容器會連接到這個虛擬網橋上, 所以有默認地址172.17.0.0/16的地址。虛擬網橋的工作方式和物理交換機類似,這樣主機上的所有容器就通過交換機連在了一個二層網絡中。

docker0子網中分配一個IP給容器使用,并設置docker0的IP地址為容器的默認網關。在主機上創建一對虛擬網卡veth pair設備,Docker將veth pair設備的一端放在新創建的容器中,并命名為eth0(容器的網卡),另一端放在主機中,以vethxxx這樣類似的名字命名,并將這個網絡設備加入到docker0網橋中。可以通過brctl show命令查看。

這個命令在bridge-utils中,需要提前安裝 apt install bridge-utils

在這里插入圖片描述

bridge模式是docker的默認網絡模式,不寫–net參數,就是bridge模式。
使用docker run -p時,docker實際是在iptables做了DNAT規則,實現端口轉發功能。可以使用iptables -t nat -vnL查看。

容器擁有獨立的network namespace,且擁有獨立的IP、端口、路由等,使用veth pair連接docker0網橋,并以dockero網橋為默認網關。


說明:

  • –net=bridge 可省略 ,-p 指定端口映射
  • 虛擬網橋默認 IP 范圍是一般都是 172.17.x.x

DNAT 的概念

DNAT,全稱 Destination NAT,就是在數據包進入網絡層時,把 目標 IP 地址目標端口號 改成另外一個地址或端口。

  • D → Destination(目的地址)

  • NAT → Network Address Translation(網絡地址轉換)

常見用途:

  • 端口映射(Port Forwarding)

  • 負載均衡(把外部請求轉發到后端多臺服務器)

  • Docker 容器端口轉發(宿主機端口 → 容器端口)


3、host模式

如果給容器指定為host模式,那么該容器就沒有獨立的network namespace,而是共用宿主機的。所以,容器不會有自己的網卡信息,而是使用宿主機的IP和端口。但除了網絡,其他像文件系統、進程等和宿主機依然是隔離的。

注意:容器和宿主機公用一個IP地址,但使用的端口不能被宿主機占用,也不能相同。


4、None模式

在None模式下,容器有自己的Network Namespace,但是并不為Docker 容器進行任何網絡配置。也就是說,這個Docker 容器沒有網卡,ip, 路由等信息。

這種類型沒有辦法聯網,但是封閉的網絡能很好的保證容器的安全性,該容器將完全獨立于網絡,用戶可以根據需要為容器添加網卡。此模式擁有所有端口。特殊情況下才會用到,一般不用。

5、container模式

這個模式指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。
新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP,端口范圍等。
可以在一定程度上節省網絡資源,容器內部依然不會擁有所有端口。同樣,兩個容器除了網絡方面,其他的如文件系統,進程列表等還是隔離的。
兩個容器的進程可以通過網卡設備通信。
新建的容器與指定容器共享IP地址,但不能使用相同的端口。


以上四種網絡模式只考慮的是容器和宿主機、容器和容器之間的通信,只能在同一臺機器里,不能跨主機通信。


6、overlay模式–》實現跨宿主機的docker之間的通信

底層原理是VXLAN.

7、自己動手新建一個網絡接口sc,讓新建的容器連接到這個接口上來

在這里插入圖片描述

docker inspect sc-nginx-1 查看容器詳情

使用iptables 查看

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳


ip add 命令輸出詳解

ip add 輸出展示了主機上的 所有網絡接口(物理的 + 虛擬的),包括 Docker 創建的虛擬網絡。


1. lo

  • 名字lo

  • 類型:回環接口(Loopback)

  • 作用:本地環回測試使用,IP 地址 127.0.0.1::1,用于進程之間本機通信,不經過物理網卡。


2. ens33

  • 名字ens33

  • 類型:物理網卡(Ethernet 接口)

  • 作用:主機真實的網絡接口,連接到你所在的物理網絡/虛擬機 NAT/橋接環境。

  • IPv4 地址192.168.237.177/24,說明主機在 192.168.237.0/24 網段。


3. docker0

  • 名字docker0

  • 類型:Docker 默認創建的 Linux 橋接網卡(bridge)

  • 作用:當容器使用默認網絡(bridge 網絡模式)時,容器的虛擬網卡都會掛到這個網橋上,實現容器與主機之間通信。

  • 默認 IPv4:一般是 172.17.0.1/16,但你這里只顯示了 IPv6 地址。


4. veth3a2f510@if2

  • 名字veth...

  • 類型:veth pair(虛擬以太網設備對)的一端

  • 作用:每個容器都會有一個 veth pair,一端在容器命名空間內,另一端接入主機上的 docker0(或其他 Docker 網絡橋)。

  • 說明@if2 表示另一端連接到編號 2 的接口(容器內的 veth 設備)。


5. br-2737d7fbbbe5

  • 名字br-2737d7fbbbe5

  • 類型:Docker 用戶自定義 bridge 網絡

  • 作用:當你用 docker network create 創建自定義網絡時,Docker 會在主機上創建一個 Linux bridge,并分配子網。

  • IPv4 地址172.18.0.1/16,說明該網絡的容器默認分配 172.18.x.x 地址。


6. vethaa59346@if2

  • 名字veth...

  • 類型:veth pair 的一端

  • 作用:掛在 br-2737d7fbbbe5 上,對應一個容器的網絡接口。另一端在容器內部。


7. vethc5ed6bb@if2

  • 名字veth...

  • 類型:veth pair 的一端

  • 作用:同上,也是 br-2737d7fbbbe5 橋接的一個容器接口。


🔹 總結

  • 物理/本機接口

    • lo:本地回環

    • ens33:主機物理網卡(192.168.237.177)

  • Docker 默認網絡

    • docker0:默認 bridge

    • veth3a2f510:掛在 docker0 上的容器接口

  • Docker 自定義網絡

    • br-2737d7fbbbe5:自定義 bridge(172.18.0.1)

    • vethaa59346 / vethc5ed6bb:掛在該自定義 bridge 上的容器接口

c4734961-d9ac-4f3a-9290-b979757bcb59

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

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

相關文章

SDRAM詳細分析-08 數據手冊解讀

大家好,這里是大話硬件。 前面我們梳理了很多關于內存的內容,不知道有沒有人好奇,為什么要花這么大的精力做這些內容? 在4月份的時候,三星宣布將在2025年逐步停產DDR4內存顆粒,隨后海力士和鎂光也跟著一起,都宣布逐步停產DDR4顆粒。這三家半導體廠商在內存方面頂了半邊…

Windows 環境下部署 MinIO 集群

文章目錄介紹軟件特點下載多機分布式集群部署1.前提準備2. 新建minio工作目錄3. 編寫運行命令4. 啟動、測試5. nginx配置介紹 MinIO 是一款高性能、開源、云原生的分布式對象存儲系統,專為私有云、公有云和邊緣計算場景設計,完全兼容 Amazon S3 API&…

鴻蒙libxm2交叉編譯

一開始先使用了lycium,但是沒有編譯通過 改為使用源碼自帶的配置文件編譯 我使用的源碼是libxml2-2.9.10.tar.gz 解壓后進行下面的配置: root@ubuntu:/home/lw/libxml2-2.9.10# export OHOS_SDK=/home/lw/ohos-sdk/linuxroot@ubuntu:/home/lw/libxml2-2.9.10# export AS=…

MCAP :機器人數據容器的全面實踐指南

Outline: MCAP 已形成完整工具鏈生態: Foxglove Studio:可視化分析工具mcap-cli:跨平臺命令行工具AWS RoboMaker:原生云存儲支持 隨著 IEEE 正在制定的 P3196 機器人數據標準,MCAP 正在演進為行業基礎架構的重要組成…

【Bluedroid】A2dp Source播放流程源碼分析(7):藍牙音頻流啟動流程深度解析(btif_av_stream_start)

本文深入分析Android Bluetooth協議棧中A2DP音頻流啟動的完整流程,從應用層調用btif_av_stream_start()開始,穿越BTIF、BTA、AVDTP多層架構,最終通過L2CAP發送AVDTP啟動命令。揭示狀態機驅動、異步消息傳遞、流控制等核心機制。并通過代碼與日志結合的方式,揭示藍牙音頻流從…

Miniconda安裝與VSCode搭建遠程Python、Jupyter開發環境

前言 數據科學和機器學習工作流程中,當本地計算機無法滿足計算任務的需求時,往往需要一個更強大計算能力的遠程環境。另一方面,VSCode由于其輕便和易用性,以及豐富的插件生態系統,一直是遠程開發的首選編輯器。本文介紹…

vue3前端開發的基礎教程——快速上手

【前言】這里使用的技術棧:fastapivue3pycharm一、創建vue3項目在項目的文件夾使用下面命令創建vue3前端框架代碼npm create vitelatest frontend選擇框中選擇: Framework: VueVariant: JavaScript 或 TypeScript cd frontend npm install啟動本地開發np…

51單片機2(按鍵,外部中斷,定時器中斷,PWM與蜂鳴器)

1.按鍵模塊以按鍵k1為例&#xff1a;兩個引腳被接到GND和P1_4引腳&#xff0c;當K1按鍵被按下時&#xff0c;P1_4引腳會和GND短路到一起&#xff0c;P1_4引腳會呈現低電平。按鍵初始化&#xff1a;//按鍵初始化 void Key_Init(void) {P1 | (0x0f << 4);P3 | (1 << …

【面試向】人工智能機器學習介紹

一、介紹 人工智能&#xff08;AI&#xff09;是通過模擬、延伸和擴展人類智能的技術&#xff0c;使機器能夠感知、理解、決策和行動。核心目標是實現“智能自動化”&#xff0c;即讓機器在復雜、動態的環境中自主完成任務&#xff0c;甚至超越人類在特定領域的能力。 機器學…

Python趣味入門:打印與計算初體驗

1. 嘗試使用 print() 打印各種內容print() 是我們在Python中最先接觸也是最常用的函數之一。它的核心功能是將內容輸出到控制臺。讓我們用它來玩點花樣&#xff1a;在您的IDE中創建一個新的Python文件&#xff08;例如 play_with_print.py&#xff09;&#xff0c;然后嘗試以下…

swagger接口文檔規范化(蒼穹外賣)

swagger接口文檔規范化 &#xff08;1&#xff09;說明&#xff1a; 將接口文檔分為管理端和用戶端 &#xff08;2&#xff09;WebMvcConfiguration修改 位置&#xff1a;sky-server/src/main/java/com/sky/config/WebMvcConfiguration.java 文件完整代碼&#xff1a; pa…

Transformer 架構的演進與未來方向(RNN → Self-Attention → Mamba)——李宏毅大模型2025第四講筆記

一句話總結——“所有架構都為了解決上一代模型的致命缺陷而生&#xff1a;CNN 解決參數爆炸&#xff0c;ResNet 解決梯度消失&#xff0c;Transformer 解決 RNN 無法并行&#xff0c;而 Mamba 則試圖一次解決 Transformer 的 O(N) 與 RNN 的記憶瓶頸。”1 每種架構的存在理由?…

Vllm-0.10.1:通過vllm bench serve測試TTFT、TPOT、ITL、E2EL四個指標

一、KVM 虛擬機環境GPU:4張英偉達A6000(48G)內存&#xff1a;128G海光Cpu:128核大模型&#xff1a;DeepSeek-R1-Distill-Qwen-32B推理框架Vllm:0.10.1二、四個性能指標介紹2.1、TTFT:Time to First token首次生成token時間&#xff08;ms&#xff09;,TTFT 越短&#xff0c;用戶…

邏輯回歸基礎

昨天一直在復盤梯度下降&#xff0c;都沒咋預習邏輯回歸&#xff0c;好在不是很難&#xff0c;來捋捋邏輯回歸簡介邏輯回歸是解決分類問題數學基礎-sigmoid函數還要回顧一下概率論極大似然估計再來看一下對數邏輯回歸原理邏輯回歸的損失函數例子&#xff1a;分類問題評估混淆矩…

STM32----W25QXX

W25QXX款圖W25QXX存儲解讀塊--->扇-->頁塊分成128塊一塊64kb一塊分成16扇一扇4kb一個扇區分成16頁&#xff0c;頁的大小是256個字節 當數據傳入W25QXX最小的擦除單元是扇區當已經輸入了一頁的數據&#xff0c;這時RAM的數據會轉存進FLASH&#xff0c;這時會置一個標志位&…

【Kafka】Kafka使用場景用例Kafka用例圖

【Kafka】Kafka使用場景用例&Kafka用例圖一、Kafka用例總圖二、Kafka用例圖示三、Kafka場景案例圖一、Kafka用例總圖 二、Kafka用例圖示 三、Kafka場景案例圖 注&#xff1a;以上圖片來源于網絡&#xff0c;如有不妥請私信刪除&#xff01;

Altium Designer(AD24)集成開發環境簡介

??《專欄目錄》 目錄 1,概述 2,界面介紹 2,搜索功能簡介 1,概述 Altium Designer 24的原理圖,PCB等設計工作都是在集成開發環境中進行的,本文簡單介紹集成開發環境界面。 2,界面介紹 如下圖所示,Altium Designer 24的集成開發環境,包括: 標題欄:目前設計中文件的…

[論文閱讀] 軟件工程 | 告別“線程安全玄學”:基于JMM的Java類靜態分析,CodeQL3分鐘掃遍GitHub千倉錯誤

告別“線程安全玄學”&#xff1a;基于JMM的Java類靜態分析&#xff0c;CodeQL3分鐘掃遍GitHub千倉錯誤 論文信息類別詳情論文原標題Scalable Thread-Safety Analysis of Java Classes with CodeQL主要作者及機構1. Bjrnar Haugstad Jatten&#xff08;哥本哈根IT大學&#xff…

jQuery.ajax() 方法核心參數詳解

大家好&#xff0c;歡迎來到程序視點&#xff01;我是你們的老朋友.小二&#xff01;jQuery.ajax() 方法核心參數詳解基礎參數url類型&#xff1a;String功能&#xff1a;請求地址&#xff0c;默認當前頁地址。type類型&#xff1a;String&#xff08;get/post為主&#xff0c;…

LCR 175. 計算二叉樹的深度【簡單】

LCR 175. 計算二叉樹的深度【簡單】 題目描述 某公司架構以二叉樹形式記錄&#xff0c;請返回該公司的層級數。 示例 1&#xff1a;輸入&#xff1a;root [1, 2, 2, 3, null, null, 5, 4, null, null, 4] 輸出: 4 解釋: 上面示例中的二叉樹的最大深度是 4&#xff0c;沿著路…