Docker 網絡之 ipvlan 和 macvlan

Docker ipvlan 和 macvlan

Docker networks explained - part 2: docker-compose, microservices, chaos  monkey | Accesto Blog

?

引言

本文講解了Docker 網絡模式中的 ipvlan 和 macvlan 的區別,目前自己在生產環境中使用的 ipvlan 模式非常問題.也解決了實際業務問題.

IPvlan L2 mode example

ipvlan 無需網卡混雜模式 , 運行如下命令后可以生成一個 vlan 子接口 , 會和主網卡共享 mac 地址

創建ipvlan 網絡

docker network create -d ipvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0.10 ipvlan10

注: 就算有 DHCP 也必須指定 subnet 和 gateway , 不然默認會分配成 172.的地址.

-o ipvlan_mode= Defaults to L2 mode if not specifie

運行容器

docker run -it --rm --net=ipvlan124 networkstatic/iperf3 -c 10.0.0.200

IPvlan L3 mode example

關鍵點: IPvlan L3 模式會丟棄所有廣播和多播流量。

不要求gateway 參數, 3 層默認互通 , 不要求 parent 接口

看下面例子就懂了

Create the IPvlan L3 networkdocker network  create  -d ipvlan \--subnet=192.168.214.0/24 \--subnet=10.1.214.0/24 \-o ipvlan_mode=l3 ipnet210Test 192.168.214.0/24 connectivitydocker run --net=ipnet210 --ip=192.168.214.10 -itd alpine /bin/shdocker run --net=ipnet210 --ip=10.1.214.10 -itd alpine /bin/shTest L3 connectivity from 10.1.214.0/24 to 192.168.212.0/24docker run --net=ipnet210 --ip=192.168.214.9 -it --rm alpine ping -c 2 10.1.214.10Test L3 connectivity from 192.168.212.0/24 to 10.1.214.0/24docker run --net=ipnet210 --ip=10.1.214.9 -it --rm alpine ping -c 2 192.168.214.10

Inside an L3 mode container$ docker exec 36bbb711cb0d  ip route
default dev eth0 scope link
192.168.214.0/24 dev eth0 scope link  src 192.168.214.10$ docker exec 0aff00099717 ip route
default dev eth0 scope link
10.1.214.0/24 dev eth0 scope link  src 10.1.214.10

Dual stack IPv4 IPv6 IPvlan L2 mode

Create a v6 networkdocker network create -d ipvlan \--ipv6 --subnet=2001:db8:abc2::/64 --gateway=2001:db8:abc2::22 \-o parent=eth0.139 v6ipvlan139Start a container on the networkdocker run --net=v6ipvlan139 -it --rm alpine /bin/sh

Macvlan

macvlan 需要注意的點

  1. 網卡必須支持混雜模式
  1. 如果您的應用程序可以使用 bridge(在單個 Docker 主機上)或覆蓋(跨多個 Docker 主機進行通信)工作,那么從長遠來看,這些解決方案可能會更好。

Refer

IPvlan network driver | Docker Documentation

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

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

相關文章

ElasticSearch的客戶端操作

ElasticSearch的客戶端操作 1、客戶端介紹 官方文檔地址: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 實際開發中,有多種方式操作Elasticsearch: 客戶端工具:發送http請求(RESTful風格)操作…

CF1195E OpenStreetMap 題解

很好的單調隊列題。 題目傳送門 題目意思: 給定一個 n m n\times m nm 的矩陣,求出所有大小為 a b a\times b ab 的子矩形中的最小值的和。 思路: 通過題目給的要求建立二維數組 h h h。通過單調隊列一行一行地掃,將掃出來…

Azure Blob存儲使用

創建存儲賬戶,性能選擇標準即可,冗余選擇本地冗余存儲即可 容器選擇類別選擇專用即可 可以上傳文件到blob中 打開文件可以看到文件的訪問路徑 4.編輯中可以修改文件 復制鏈接,嘗試訪問,可以看到沒有辦法訪問,因為創建容器的時候選…

spring(15) SpringBoot啟動過程

目錄 一、過程簡介二、過程流程圖三、源碼分析1、運行 SpringApplication.run() 方法2、確定應用程序類型3、加載所有的初始化器4、加載所有的監聽器5、設置程序運行的主類6、開啟計時器7、將 java.awt.headless 設置為 true8、獲取并啟用監聽器9、設置應用程序參數10、準備環境…

LeetCode450. 刪除二叉搜索樹中的節點

450. 刪除二叉搜索樹中的節點 文章目錄 [450. 刪除二叉搜索樹中的節點](https://leetcode.cn/problems/delete-node-in-a-bst/)一、題目二、題解方法一:遞歸(一種麻煩的方法)方法二:優化后的遞歸 一、題目 給定一個二叉搜索樹的根…

SpringBoot校驗,DTO文件中常用的注解應用案例.

在觀看本篇文章之前,可以先參考我之前寫的一篇文章 “ Spring5,Service層對DTO文件進行數據格式校驗. ” ,這篇文章是介紹在 Service層 對DTO文件的校驗。 以下方的 CompanyDTO 文件為例,講解不同的注解使用場景,以及…

論文閱讀——Imperceptible Adversarial Attack via Invertible Neural Networks

Imperceptible Adversarial Attack via Invertible Neural Networks 作者:Zihan Chen, Ziyue Wang, Junjie Huang*, Wentao Zhao, Xiao Liu, Dejian Guan 解決的問題:雖然視覺不可感知性是對抗性示例的理想特性,但傳統的對抗性攻擊仍然會產…

每天一道leetcode:1129. 顏色交替的最短路徑(圖論中等廣度優先遍歷)

今日份題目: 給定一個整數 n,即有向圖中的節點數,其中節點標記為 0 到 n - 1。圖中的每條邊為紅色或者藍色,并且可能存在自環或平行邊。 給定兩個數組 redEdges 和 blueEdges,其中: redEdges[i] [ai, bi…

Dubbo Spring Boot Starter 開發微服務應用

環境要求 系統:Windows、Linux、MacOS JDK 8 及以上(推薦使用 JDK17) Git IntelliJ IDEA(可選) Docker (可選) 項目介紹 在本任務中,將分為 3 個子模塊進行獨立開發&#xff…

LINUX學習筆記_GIT操作命令

LINUX學習筆記 GIT操作命令 基本命令 git init:初始化倉庫git status:查看文件狀態git add:添加文件到暫存區(index)git commit -m “注釋”:提交文件到倉庫(repository)git log&a…

計算機組成與設計 Patterson Hennessy 筆記(一)MIPS 指令集

計算機的語言:匯編指令集 也就是指令集。本書主要介紹 MIPS 指令集。 匯編指令 算數運算: add a,b,c # abc sub a,b,c # ab-cMIPS 匯編的注釋是 # 號。 由于MIPS中寄存器大小32位,是基本訪問單位,因此也被稱為一個字 word。M…

Java Web常見面試題

1、JSP和Servlet有什么區別 jsp經過編譯后變成類Servlet(JSP的本質就是Servelt,JVM只能識別java的類,不能識別jsp的代碼,于是web容器將jsp的代碼編譯成JVM能夠識別的java類,也就是servelt)jsp更擅長表現于…

【2023年11月第四版教材】《第5章-信息系統工程之系統集成(第四部分)》

《第5章-信息系統工程之系統集成(第四部分)》 3 系統集成3.1網絡集成3.2 數據集成3.3 軟件集成3.4 應用集成3.5 安全工程 3 系統集成 3.1網絡集成 安全對策要點傳輸子系統1.常用的無線傳輸介質主要包括無線電波、微波、紅外線等2.常用的有線傳輸介質主…

webpack中常見的Loader

目錄 1.webpack中的loader是什么?配置方式 2. loader特性3.常見的loader 1.webpack中的loader是什么? loader 用于對模塊的"源代碼"進行轉換,在 import 或"加載"模塊時預處理文件 webpack做的事情,僅僅是分…

爬蟲逆向實戰(三)--天某云登錄

一、數據接口分析 主頁地址:天某云 1、抓包 通過抓包可以發現登錄接口是account/login 2、判斷是否有加密參數 請求參數是否加密? 通過“載荷”模塊可以發現password、comParam_signature、comParam_seqCode是加密的 請求頭是否加密? 無…

ElasticSearch 8.9.0 開發模式安裝

ElasticSearch 8.9.0 開發模式安裝 MacOS(Apple芯片):https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-darwin-aarch64.tar.gz Linux:https://artifacts.elastic.co/downloads/elasticsearch/elasti…

git倉庫新建上傳記錄

新建git倉會出現版本分支問題,解決過程: 其他的前期綁定之類的傳送:https://blog.csdn.net/qq_37194189/article/details/130767397 大概思路:新建一個分支,上傳,合并,刪除分支 git branch …

4.2 C++ Boost 內存池管理庫

Boost 庫是一個由C/C語言的開發者創建并更新維護的開源類庫,其提供了許多功能強大的程序庫和工具,用于開發高質量、可移植、高效的C應用程序。Boost庫可以作為標準C庫的后備,通常被稱為準標準庫,是C標準化進程的重要開發引擎之一。…

cmake擴展(5)——file命令排除部分文件

在cmake中可以使用file命令獲取需要的文件&#xff0c;并且支持正則/通配符&#xff0c;使用起來還是很方便的。 #語法file({GLOB | GLOB_RECURSE} <out-var> [...] [<globbing-expr>...])#example file(GLOB_RECURSE SOURCES "src/*.h" "src/*.cp…

HTTP與HTTPS的區別

面試常見問題&#xff0c;HTTPS優化總結易記版&#xff1a; 1、HSTS重定向技術&#xff1a;將http自動轉換為https&#xff0c;減少301重定向 2、TLS握手優化&#xff1a;在TLS握手完成前客戶端就提前向服務器發送數據 3、會話標識符&#xff1a;服務器記錄下與某客戶端的會…