docker 网络模式之 macvlan模式
一、简介
一些程序,特别是应用程序或者网络流量监控程序,期望直接连接到物理网络,这种情况下,可使用Macvlan网络模式,给每个容器的虚拟网络接口配置一个mac地址,使得连接容器,看起来是直接到一个物理主机上。这种情况下,需要在主机上 为macvlan驱动,指定一个物理接口,一起子网与默认网关,甚至使用不同的物理网络接口,隔离navlan网络。但必须了解如下几点:
(1)IP地址溢出,和虚拟网络传播(VLAN spreads)将很容易导致网络损坏。例如网络中有众多无效的唯一mac地址,
(2)网络设备需要处理“混杂模式”, 多个mac地址关联一个物理接口
(3)如果应用程序可使用 bridge 模式 或者 overlay 模式,从长远来讲,将是更好的选择。
二、创建一个macvlan 网络
当创建一个macvlan网络时,我们可选如下两种模式
bridge mode : 桥接模式, 该模式下,网络数据路由,通过主机的一个物理设备。
802.1 q trunk birdge mode: 802.1 q主干桥接模式, (虚拟桥接局域网),流量通过docker 动态创建一个以 802.1 q的子接口传输(这里不深入解释802.1 q)这允许用户在更细的层次上控制路由和筛选。
2.1 Bridge mode
创建一个该模式下的网络,需要一个给定的物理接口,指定 --driver macvlan , 使用指令 docker network create 创建, 同时必须指定 parent 标记,也即通讯流实际在docker主机上流经的物理接口。
$ docker network create -d macvlan \--subnet=172.16.86.0/24 \--gateway=172.16.86.1 \-o parent=eth0 pub_net
如果需要,正在使用的macvlan中,排除一些ip,例如用户给定使用ip的,可使用 --aux-addresses 修改
$ docker network create -d macvlan \--subnet=192.168.32.0/24 \--ip-range=192.168.32.128/25 \--gateway=192.168.32.254 \--aux-address="my-router=192.168.32.129" \-o parent=eth0 macnet32
2.2 802.1 q trunk bridge mode
如果以包含点号 "."命名方式 指定一个 parent 接口时, 例如 eth0.50 , docker将把它看做eth0的一个子网,并自动创建子接口。
$ docker network create -d macvlan \--subnet=192.168.50.0/24 \--gateway=192.168.50.1 \-o parent=eth0.50 macvlan50
2.3 使用 ipvlan 提到 macvlan
2.1 和 2.2 依然使用的L3的桥接网络,可使用 iplvan 替代,获取L2的桥接,使用 -o ipvlan_mode=l2 指定
$ docker network create -d ipvlan \--subnet=192.168.210.0/24 \--subnet=192.168.212.0/24 \--gateway=192.168.210.254 \--gateway=192.168.212.254 \-o ipvlan_mode=l2 ipvlan210
2.4 启动ipv6
如果配置了docker daemon 的启动参数,运行使用ipv6, 可在macvlan网络中,同时使用 ipv4、ipv6双网络堆栈,
$ docker network create -d macvlan \--subnet=192.168.216.0/24 --subnet=192.168.218.0/24 \--gateway=192.168.216.1 --gateway=192.168.218.1 \--subnet=2001:db8:abc8::/64 --gateway=2001:db8:abc8::10 \-o parent=eth0.218 \-o macvlan_mode=bridge macvlan216
docker 网络模式之 macvlan模式相关推荐
- 你应该学会的docker网络模式
学习Docker网络的七种模式 0. 双网卡 1. the default Bridge 2. User-defined 自定义桥接网络 3. the Host 3. MacVLAN 3+. the ...
- Docker网络和服务发现
[编者的话] 本文是<Docker网络和服务发现>一书的全文,作者是Michael Hausenblas.本文介绍了Docker世界中的网络和服务发现的工作原理,并提供了一系列解决方案. ...
- Docker网络-(六)
Docker网络(六) 理解Docker0 先测试一手网络地址 会发现一个Docker0网络地址 这个Docker0就相当于一个路由器,每新建一个容器,就会为其分配一个ip,这个路由器会以桥接的模式连 ...
- docker_6 Docker 网络
https://gitee.com/fakerlove/docker 文章目录 6.Docker 网络 6.1 桥接模式 6.2 容器连接--link 6.3 自定义网络 创建自定义网络 创建容器连接 ...
- 查看此docker网络连接模式_Docker:网络模式详解
袖珍指南 Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创 ...
- docker 网络_初探Docker的网络模式
xiaohang 一个写不好代码的年轻人 钢铁侠的铁杆粉丝:I am Iron Man! 刚接触Docker的时候,你是否好奇容器之间是怎么通信的呢? 今天我们就一起来认识一下docker的网络吧~ ...
- docker网络--理解linux底层实现机制、docker网络模式
1. Linux网络基础 Linux内核具有非常成熟和高性能的TCP / IP堆栈实现.Docker网络使用linux内核的网络堆栈作为低级原语来创建高级网络驱动程序.简而言之,Docker网络就是 ...
- 查看此docker网络连接模式_Docker网络模式介绍
一.概述 docker的网络驱动有很多种方式,按照docker官网给出的网络解决方案就有6种,分别是:bridge.host.overlay.macvlan.none.Network plugins, ...
- Docker网络模式与数据管理
Docker网络模式与数据管理 前言 一.四种网络模式 (1)Host模式 (2)Container模式 (3)Bridge模式(默认) (4)None模式 (5)overlay2 二.自定义网络 ( ...
- Docker网络模式解析
目录 前言 一.常用基本命令 (一)查看网络 (二)创建网络 (三)查看网络源数据 (四)删除网络 二.网络模式 (一)总体介绍 (二)容器实例内默认网络IP生产规则 (三)案例说明 1.bridge ...
最新文章
- IOS开发CALayer隐式动画
- IOS 面试 --- 动画 block
- MySQL输入密码后闪退
- PagedList.Mvc只有一行时不显示分页
- linux sftp自动输入密码,使用autoexpect避免sftp输入密码
- PostgreSQL mysql 兼容性之 - 字符编码转换 CONVERT
- java sql server 2016_SQL server 2016 安装步骤
- 贝叶斯网络结构学习方法
- “头脑王者”爆红被封,微信小程序迎来蛮荒期
- 机器学习实战系列(八):分类与回归树
- Python Day05
- vs2013+qt生成的exe无法找到入口,无法定位程序输入点与动态库*.exe,而不是DLL
- 【MySQL】黑马教程MySQL数据库 MySQL基础(二)
- Python代码实现将png格式图片批量转换为jpg个格式
- 彩色二维码如何制作?
- HAPI使用方法总结(HITRAN数据库,HITEMP数据库)
- 2018CVTE后台研发工程师内推笔试编程题2
- matlab异步电机仿真,基于MATLAB的异步电机仿真系统
- rfc-3227中文翻译
- 市场因子(Market Factor)——投资组合分析(EAP.portfolio_analysis)
热门文章
- 通达信最新 行情服务器,通达信行情服务器数据
- 小程序 · 云开发快速入门与实战
- Sublime插件 FileHeader 的安装、设置、使用
- Error loading syntax file “packages/zzz A File Icon zzz/aliases/Plain Text(CSV).sublime-synax“:……解决
- 分享一个很好的dll查看器
- callback函数 matlab,matlab GUI 自主设计时callback回调函数问题
- Hive建表语句解释
- Selenium+Appium底层原理
- 浏览器扩展应用安装AXURE插件
- java代码混淆(使用 ProGuard maven插件)