一、简介

一些程序,特别是应用程序或者网络流量监控程序,期望直接连接到物理网络,这种情况下,可使用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模式相关推荐

  1. 你应该学会的docker网络模式

    学习Docker网络的七种模式 0. 双网卡 1. the default Bridge 2. User-defined 自定义桥接网络 3. the Host 3. MacVLAN 3+. the ...

  2. Docker网络和服务发现

    [编者的话] 本文是<Docker网络和服务发现>一书的全文,作者是Michael Hausenblas.本文介绍了Docker世界中的网络和服务发现的工作原理,并提供了一系列解决方案. ...

  3. Docker网络-(六)

    Docker网络(六) 理解Docker0 先测试一手网络地址 会发现一个Docker0网络地址 这个Docker0就相当于一个路由器,每新建一个容器,就会为其分配一个ip,这个路由器会以桥接的模式连 ...

  4. docker_6 Docker 网络

    https://gitee.com/fakerlove/docker 文章目录 6.Docker 网络 6.1 桥接模式 6.2 容器连接--link 6.3 自定义网络 创建自定义网络 创建容器连接 ...

  5. 查看此docker网络连接模式_Docker:网络模式详解

    袖珍指南 Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创 ...

  6. docker 网络_初探Docker的网络模式

    xiaohang 一个写不好代码的年轻人 钢铁侠的铁杆粉丝:I am Iron Man! 刚接触Docker的时候,你是否好奇容器之间是怎么通信的呢? 今天我们就一起来认识一下docker的网络吧~ ...

  7. docker网络--理解linux底层实现机制、docker网络模式

    1. Linux网络基础 Linux内核具有非常成熟和高性能的TCP / IP堆栈实现.Docker网络使用linux内核的网络堆栈作为低级原语来创建高级网络驱动程序.简而言之,Docker网络就是 ...

  8. 查看此docker网络连接模式_Docker网络模式介绍

    一.概述 docker的网络驱动有很多种方式,按照docker官网给出的网络解决方案就有6种,分别是:bridge.host.overlay.macvlan.none.Network plugins, ...

  9. Docker网络模式与数据管理

    Docker网络模式与数据管理 前言 一.四种网络模式 (1)Host模式 (2)Container模式 (3)Bridge模式(默认) (4)None模式 (5)overlay2 二.自定义网络 ( ...

  10. Docker网络模式解析

    目录 前言 一.常用基本命令 (一)查看网络 (二)创建网络 (三)查看网络源数据 (四)删除网络 二.网络模式 (一)总体介绍 (二)容器实例内默认网络IP生产规则 (三)案例说明 1.bridge ...

最新文章

  1. IOS开发CALayer隐式动画
  2. IOS 面试 --- 动画 block
  3. MySQL输入密码后闪退
  4. PagedList.Mvc只有一行时不显示分页
  5. linux sftp自动输入密码,使用autoexpect避免sftp输入密码
  6. PostgreSQL mysql 兼容性之 - 字符编码转换 CONVERT
  7. java sql server 2016_SQL server 2016 安装步骤
  8. 贝叶斯网络结构学习方法
  9. “头脑王者”爆红被封,微信小程序迎来蛮荒期
  10. 机器学习实战系列(八):分类与回归树
  11. Python Day05
  12. vs2013+qt生成的exe无法找到入口,无法定位程序输入点与动态库*.exe,而不是DLL
  13. 【MySQL】黑马教程MySQL数据库 MySQL基础(二)
  14. Python代码实现将png格式图片批量转换为jpg个格式
  15. 彩色二维码如何制作?
  16. HAPI使用方法总结(HITRAN数据库,HITEMP数据库)
  17. 2018CVTE后台研发工程师内推笔试编程题2
  18. matlab异步电机仿真,基于MATLAB的异步电机仿真系统
  19. rfc-3227中文翻译
  20. 市场因子(Market Factor)——投资组合分析(EAP.portfolio_analysis)

热门文章

  1. 通达信最新 行情服务器,通达信行情服务器数据
  2. 小程序 · 云开发快速入门与实战
  3. Sublime插件 FileHeader 的安装、设置、使用
  4. Error loading syntax file “packages/zzz A File Icon zzz/aliases/Plain Text(CSV).sublime-synax“:……解决
  5. 分享一个很好的dll查看器
  6. callback函数 matlab,matlab GUI 自主设计时callback回调函数问题
  7. Hive建表语句解释
  8. Selenium+Appium底层原理
  9. 浏览器扩展应用安装AXURE插件
  10. java代码混淆(使用 ProGuard maven插件)