Docker 网络之 ipvlan 和 macvlan
Docker ipvlan 和 macvlan

引言
本文讲解了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 需要注意的点
- 网卡必须支持混杂模式
- 如果您的应用程序可以使用 bridge(在单个 Docker 主机上)或覆盖(跨多个 Docker 主机进行通信)工作,那么从长远来看,这些解决方案可能会更好。
Refer
IPvlan network driver | Docker Documentation
相关文章:
Docker 网络之 ipvlan 和 macvlan
Docker ipvlan 和 macvlan 引言 本文讲解了Docker 网络模式中的 ipvlan 和 macvlan 的区别,目前自己在生产环境中使用的 ipvlan 模式非常问题.也解决了实际业务问题. IPvlan L2 mode example ipvlan 无需网卡混杂模式 , 运行如下命令后可以生成一个 vlan 子接口 , 会和主网卡…...
【Rust】Rust学习 第十三章Rust 中的函数式语言功能:迭代器与闭包
Rust 的设计灵感来源于很多现存的语言和技术。其中一个显著的影响就是 函数式编程(functional programming)。函数式编程风格通常包含将函数作为参数值或其他函数的返回值、将函数赋值给变量以供之后执行等等。 更具体的,我们将要涉及&#…...
【Linux操作系统】详解Linux系统编程中的管道进程通信
在Linux系统编程中,管道是一种常用的进程间通信方式。它可以实现父子进程之间或者兄弟进程之间的数据传输。本文将介绍如何使用管道在Linux系统中进行进程通信,并给出相应的代码示例。 文章目录 1. 管道的概念2. 管道的创建和使用2.1 原型2.2 示例 3. 父…...
【Redis从头学-4】Redis中的String数据类型实战应用场景之验证码、浏览量、点赞量、Json格式存储
🧑💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Re…...
linux 统计命令
统计命令 使用wc来进行统计 # wc [选项] 文件名wc -l a 2 awc -w a 8 a---------------l 统计行数-w 统计单词数-m 统计字符数-c 统计字节数 https://zhhll.icu/2021/linux/基础/统计命令/ 本文由 mdnice 多平台发布...
docker部署springboot应用
一、下载安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 启动:systemctl start docker 二、配置国内镜像源 (1)在/etc/docker目录中添加daemon.json文件,内容如下: { …...
YOLO v5、v7、v8 模型优化
YOLO v5、v7、v8 模型优化 魔改YOLOyaml 文件解读模型选择在线做数据标注 YOLO算法改进YOLOv5yolo.pyyolov5.yaml更换骨干网络之 SwinTransformer更换骨干网络之 EfficientNet优化上采样方式:轻量化算子CARAFE 替换 传统(最近邻 / 双线性 / 双立方 / 三线…...
回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测(多指标,多图)效果一览基本…...
QT的mysql(数据库)最佳实践和常见问题解答
涉及到数据库,首先安利一个软件Navicat Premium,用来查询数据库很方便 QMysql驱动是Qt SQL模块使用的插件,用于与MySQL数据库进行通信。要编译QMysql驱动,您需要满足以下条件: 您需要安装MySQL的客户端库和开发头文件…...
使用PyMuPDF库的PDF合并和分拆程序
PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单工具,用于合并和分拆PDF文件。它提供了一个用户友好的图形界面,允许用户选择源文件夹和目标文件夹,并对PDF文件进行操作。 C:\pythoncode\blog\pdfmergandsplit.py 功能特点 选择文…...
Data Abstract for .NET and Delphi Crack
Data Abstract for .NET and Delphi Crack .NET和Delphi的数据摘要是一套或RAD工具,用于在.NET、Delphi和Mono中编写多层解决方案。NET和Delphi的数据摘要是一个套件,包括RemObjects.NET和Delphi版本的数据摘要。RemObjects Data Abstract允许您创建访问…...
Eclipse集成MapStruct
Eclipse集成MapStruct 在Eclipse中添加MapStruct依赖配置Eclipse支持MapStruct①安装 m2e-aptEclipse Marketplace的方式安装Install new software的方式安装(JDK8用到) ②添加到pom.xml 今天拿到同事其他项目的源码,导入并运行的时候抛出了异…...
采用pycharm在虚拟环境使用pyinstaller打包python程序
一年多以前,我写过一篇博客描述了如何虚拟环境打包,这一次有所不同,直接用IDE pycharm构成虚拟环境并运行pyinstaller打包 之前的博文: 虚拟环境venu使用pyinstaller打包python程序_伊玛目的门徒的博客-CSDN博客 第一步…...
Rx.NET in Action 中文介绍 前言及序言
Rx 处理器目录 (Catalog of Rx operators) 目标可选方式Rx 处理器(Operator)创建 Observable Creating Observables直接创建 By explicit logicCreate Defer根据范围创建 By specificationRangeRepeatGenerateTimerInterval Return使用预设 Predefined primitivesThrow …...
Azure Blob存储使用
创建存储账户,性能选择标准即可,冗余选择本地冗余存储即可 容器选择类别选择专用即可 可以上传文件到blob中 打开文件可以看到文件的访问路径 4.编辑中可以修改文件 复制链接,尝试访问,可以看到没有办法访问,因为创建容器的时候选…...
mysql、redis面试题
mysql 相关 1、数据库优化查询方法 外键、索引、联合查询、选择特定字段等等2、简述mysql和redis区别 redis: 内存型非关系数据库,数据保存在内存中,速度快mysql:关系型数据库,数据保存在磁盘中,检索的话&…...
22、touchGFX学习Model-View-Presenter设计模式
touchGFX采用MVP架构,如下所示: 本文界面如下所示: 本文将实现两个操作: 1、触摸屏点击开关按键实现打印开关显示信息,模拟开关灯效果 2、板载案按键控制触摸屏LED灯的显示和隐藏 一、触摸屏点击开关按键实现打印开…...
Python Opencv实践 - 图像高斯滤波(高斯模糊)
import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) rows,cols,channels img.shape print(rows,cols,channels)#为图像添加高斯噪声 #使用np.random.normal(loc0.0, scale1.0…...
使用 Qt 生成 Word 和 PDF 文档的详细教程
系列文章目录 文章目录 系列文章目录前言一、安装 Qt二、生成 Word 文档三、生成 PDF 文档四、运行代码并查看结果五、自定义文档内容总结 前言 Qt 是一个跨平台的应用程序开发框架,除了用于创建图形界面应用程序外,还可以用来生成 Word 和 PDF 文档。本…...
基于RAG的LLM知识库构建:从智能分块到检索增强生成实战
1. 项目概述:一个为大型语言模型量身定制的知识库构建工具如果你和我一样,经常和大型语言模型打交道,无论是用它们来辅助编程、分析文档,还是构建问答系统,那你一定遇到过这个核心痛点:如何让模型精准地理解…...
Linux内核模块开发实战:用filp_open和vfs_read实现一个简易配置文件读取器
Linux内核模块开发实战:用filp_open和vfs_read实现一个简易配置文件读取器 在Linux内核开发中,有时我们需要在内核态直接读取用户空间的配置文件。这种需求常见于需要动态加载配置的驱动程序、内核日志系统或特殊的内核服务。本文将带你从零开始构建一个…...
AzurLaneAutoScript:碧蓝航线玩家的终极自动刷图解决方案
AzurLaneAutoScript:碧蓝航线玩家的终极自动刷图解决方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为…...
对话式AI应用开发实战:基于Bolna框架的语音助手构建与优化指南
1. 项目概述:Bolna,一个面向对话式AI应用的开源编排框架如果你正在构建一个需要处理语音或文本对话的AI应用,比如一个智能客服、一个语音助手,或者一个能通过电话自动处理预约的机器人,你可能会立刻想到几个核心挑战&a…...
DDrawCompat:如何在现代Windows上为经典DirectX游戏注入新生命?
DDrawCompat:如何在现代Windows上为经典DirectX游戏注入新生命? 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/…...
如何快速为音乐库批量下载完美歌词?ZonyLrcToolsX 终极指南
如何快速为音乐库批量下载完美歌词?ZonyLrcToolsX 终极指南 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX 还在为音乐播放器缺少歌词而烦恼吗?是…...
Git远程仓库核心原理与团队协作实战指南
1. 项目概述:为什么远程仓库是Git协作的基石如果你已经用Git在本地创建了项目,并且熟练地使用git add和git commit来记录每一次代码的变更,那么恭喜你,你已经掌握了版本控制的个人副本。但这仅仅是Git能力的冰山一角。真正的威力&…...
PowerShdll源码深度分析:从DLL导出到控制台劫持的完整实现原理
PowerShdll源码深度分析:从DLL导出到控制台劫持的完整实现原理 【免费下载链接】PowerShdll Run PowerShell with rundll32. Bypass software restrictions. 项目地址: https://gitcode.com/gh_mirrors/po/PowerShdll PowerShdll是一个创新的PowerShell绕过工…...
对比直接使用厂商API,Taotoken在计费透明与用量观测上的优势
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API,Taotoken在计费透明与用量观测上的优势 当个人开发者或小型团队开始将大模型能力集成到自己的项目…...
物联网设备网络无缝切换与多网融合:exnetif模块实战指南
1. 项目概述:为什么我们需要exnetif? 在物联网项目的实际开发中,我遇到过太多因为网络环境不稳定而导致的“玄学”问题。比如,一个部署在工厂车间的智能网关,原本通过稳定的有线以太网连接云端,一旦生产线调…...
