创建macvlan网络,需要指定使用哪块物理网卡进行通信
-o parent=ens192
创建macvlan网络,需要指定网络环境已经存在的网关,因为macvlan并不提供网关功能
--gateway 172.16.86.1
因为网关是我们网络环境中存在的,所以我们也需要指定一个与网关匹配的网络地址
--subnet 172.16.86.0/24
在下面的实验中可以看到:
1、macvlan不提供网关服务
2、macvlan不提供dns服务
3、macvlan属于本地网络类型,所以两台host上的macvlan网络是相互独立的
4、macvlan不提供自动分配IP地址的服务,创建容器时需要手动指定容器IP,还要与其他host上的macvlan避免IP冲突
root@host1:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@host1:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
9e26e05efc49 bridge bridge local
bb03f7574aa2 host host local
11e39328a6d1 none null local
root@host1:~# docker network create -d macvlan --subnet 172.16.86.0/24 --gateway 172.16.86.1 -o parent=ens192 mac_net1
d60df792c93636940d01eaae0ede35491c0ff0592cfd374b06b5579baf6770d4
root@host1:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
9e26e05efc49 bridge bridge local
bb03f7574aa2 host host local
d60df792c936 mac_net1 macvlan local
11e39328a6d1 none null local
root@host1:~# docker run -itd --name bbox1 --ip 172.16.86.11 --network mac_net1 busybox
b56e6cd9876e7d3fa477918281f6db1c04446733c99d32bbd08028be8acefd3b
root@host1:~# docker exec bbox1 ip r
default via 172.16.86.1 dev eth0
172.16.86.0/24 dev eth0 scope link src 172.16.86.11
root@host1:~# docker exec bbox1 ping -c 2 bbox2
ping: bad address 'bbox2'
root@host1:~# docker exec bbox1 ping -c 2 172.16.86.12
PING 172.16.86.12 (172.16.86.12): 56 data bytes
64 bytes from 172.16.86.12: seq=0 ttl=64 time=0.548 ms
64 bytes from 172.16.86.12: seq=1 ttl=64 time=0.267 ms
--- 172.16.86.12 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.267/0.407/0.548 ms
root@host1:~# docker exec bbox1 ping -c 2 172.16.86.1
PING 172.16.86.1 (172.16.86.1): 56 data bytes
--- 172.16.86.1 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
root@host2:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@host2:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
65563241b1ff bridge bridge local
cf4c89650a1f host host local
2f7d79e0114d none null local
root@host2:~# docker network create -d macvlan --subnet 172.16.86.0/24 --gateway 172.16.86.1 -o parent=ens192 mac_net1
39f1aab9f5b8aba4491b50d080bb263d5a184658b31828fc2e40a1d28563f321
root@host2:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
65563241b1ff bridge bridge local
cf4c89650a1f host host local
39f1aab9f5b8 mac_net1 macvlan local
2f7d79e0114d none null local
root@host2:~# docker run -itd --name bbox3 --ip 172.16.86.12 --network mac_net1 busybox
43406891a16236b17028f0d4e1983accdd79c47cea63f91948fd4de6f17dba41
root@host2:~# docker rm -f bbox3
bbox3
root@host2:~# docker run -itd --name bbox2 --ip 172.16.86.12 --network mac_net1 busybox
55e101449753d0ed5e5da4315e99b16fc807d7110a19ea5117a958e7d62effed
root@host2:~# docker exec bbox2 ip r
default via 172.16.86.1 dev eth0
172.16.86.0/24 dev eth0 scope link src 172.16.86.12
- 第 8 章 容器网络 - 055 - 创建 macvlan 网络
1.创建 macvlan 网络 在 host1 和 host2 中创建 macvlan 网络 mac_net1: docker network create -d macvlan --subnet=1 ...
- 创建 macvlan 网络 - 每天5分钟玩转 Docker 容器技术(55)
上一节我们准备好了 macvlan 的实验环境,今天在 host1 和 host2 中创建 macvlan 网络 mac_net1: 注意:在 host2 中也要执行相同的命令. ① -d macvl ...
- [2019.03.22] Linux 学习心得(1)
本文关键词:shell 判断.grep正则表达式使用和贪婪匹配理解 1. if [ $a -le $b ], 一开始自学的时候我以为 [ ... ] 就是普通的,语法规定的结构,结果其实人家是&quo ...
- 2019.03.22 读书笔记 Linq中的IEnumerable与IQueryable
Linq主要分为 Linq to object .Linq to XML .Linq to sql(现在都用EF了). 针对object和sql,微软分别设计了两套接口IEnumerable.IQue ...
- 2019.03.22 读书笔记 var object dynamic
var:语法糖,在编译时推断出类型,根据反编译可以看出.实际用处是增加代码的健壮性,比如 linq ,匿名对象等. object:很多人容易和var混淆,其实概念上完全不同,没什么可比性. dynam ...
- macvlan 网络结构分析 - 每天5分钟玩转 Docker 容器技术(56)
上一节我们创建了 macvlan 并部署了容器,本节详细分析 macvlan 底层网络结构. macvlan 网络结构分析 macvlan 不依赖 Linux bridge,brctl show 可以 ...
- 第 8 章 容器网络 - 056 - macvlan 网络结构分析
macvlan 网络结构分析 macvlan 不依赖 Linux bridge,brctl show 可以确认没有创建新的 bridge. 查看一下容器 bbox1 的网络设备: 除了 lo,容器只有 ...
- 050、创建overlay网络(2019-03-15 周五)
参考https://www.cnblogs.com/CloudMan6/p/7280787.html 在host01中创建overlay网络 ov_net1 在下面的例子中可以看到,我们在ho ...
- 056、macvlan网络结构分析(2019-03-25 周一)
参考https://www.cnblogs.com/CloudMan6/p/7383919.html macvlan不依赖linux bridge brctl show 可以确认没有创建新的b ...
随机推荐
- Codeforces 346D Robot Control(01BFS)
题意 有一个 \(N\) 个点, \(M\) 条边的有向图, 初始有一个机器人在 \(1\) 号点. 每个时刻, 这个机器人会随机选择一条从该点出发地边并通过.当机器人到达点 \(N\) 时, 它就会 ...
- 【WC2018】州区划分(FWT,动态规划)
[WC2018]州区划分(FWT,动态规划) 题面 UOJ 洛谷 题解 首先有一个暴力做法(就有\(50\)分了) 先\(O(2^nn^2)\)预处理出每个子集是否合法,然后设\(f[S]\)表示当前 ...
- 0-1背包 VIOJ1025
P1025小飞侠的游园方案 请 登录 后递交 标签:[显示标签] 描述 菜虫:你的题目是--我们的情报组织探听到敌人的重要将领--小飞侠星期天会邀他的灵儿妹妹到公园去玩.公园里有很多娱乐项目,可并不是 ...
- 【linux】Linux系统SELinux简介
安全加强型Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. 是linux安全加强的另一种实现方式. ...
- 我们如何用Go来处理每分钟100万复杂请求的场景
在Malwarebytes我们经历了显著的增长,自从我一年前加入了硅谷的公司,一个主要的职责成了设计架构和开发一些系统来支持一个快速增长的信息安全公司和所有需要的设施来支持一个每天百万用户使用的产品. ...
- django(六)之ORM数据库操作
https://www.cnblogs.com/haiyan123/p/7732190.html 一.ORM介绍 ORM——object relation mapping 映射关系: 表名 ----- ...
- react-native中的TextInput
TextInput是一个允许用户输入文本的基础组件.它有一个名为onChangeText的属性,此属性接受一个函数, 而此函数会在文本变化时被调用.另外还有一个名为onSubmitEditing的属性 ...
- bs4抓取糗事百科
抓取糗事百科内容及评论,不包含图片信息.user-agent填入浏览器的即可.user-agent对应的value,360极速浏览器的话,可以在地址栏输入about:version,回车,用户代理后面 ...
- Spring MVC 架构的java web工程如何添加登录过滤器
发布到外网的web工程必须添加登录过滤器来阻挡一些非法的请求,即只有登录的用户才能对web工程进行请求,否则无论请求什么资源都需要调整到登录页面进行登录操作.这时就需要用到过滤器,其实非常简单,只需要 ...
- C++对象作为返回值的问题
#include "stdio.h" class Object{ public: int i; Object& method1(){ return *this; } }; ...