• 创建docker及其macVLAN网络环境

    • 准备
    • 创建macVLAN网络
    • 创建容器
    • 测试是否work
  • 联通性测试
    • 背景
    • 结果
  • 延迟
    • 背景
    • 结果
  • 结论

创建docker及其macVLAN网络环境

准备

  • 使用VMWARE创建两台虚拟机,master : 192.168.91.133.,node : 192.168.91.134
  • 在两台虚拟机中安装docker,配置docker加速仓库

    国内可使用阿里云加速仓库:https://dev.aliyun.com/search.html
    登陆后,在加速器中可以看到自己的加速地址
    然后配置两个虚拟机的docker文件

    sudo tee /etc/docker/daemon.json <<-'EOF'
    {"registry-mirrors": ["https:// [ YOUR OWN CODE ].mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  • 下载docker镜像

[root@master docker]# docker pull docker.io/busybox
Using default tag: latest
Trying to pull repository docker.io/library/busybox ...
latest: Pulling from docker.io/library/busybox
1cae461a1479: Pull complete
Digest: sha256:c79345819a6882c31b41bc771d9a94fc52872fa651b36771fbe0c8461d7ee558
[root@master docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/busybox   latest              c75bebcdd211        2 weeks ago         1.106 MB

创建macVLAN网络

  • 设置master和node的网络类型为混杂模式
[root@master ~]# ip link set ens33 promisc on
[root@master ~]# ifconfig ens33
ens33: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500inet 192.168.91.133  netmask 255.255.255.0  broadcast 192.168.91.255inet6 fe80::1e97:b457:c2a8:10b2  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:b7:61:15  txqueuelen 1000  (Ethernet)RX packets 180518  bytes 211043955 (201.2 MiB)RX errors 0  dropped 2  overruns 0  frame 0TX packets 22461  bytes 2168198 (2.0 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@node ~]# ip link set ens33 promisc on
[root@node ~]# ifconfig ens33
ens33: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500inet 192.168.91.134  netmask 255.255.255.0  broadcast 192.168.91.255inet6 fe80::1e97:b457:c2a8:10b2  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:b7:61:15  txqueuelen 1000  (Ethernet)RX packets 180518  bytes 211043955 (201.2 MiB)RX errors 0  dropped 2  overruns 0  frame 0TX packets 22461  bytes 2168198 (2.0 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 分别创建docker网络,macvlan模式采用bridge
[root@node ~]# docker network create -d macvlan --subnet 192.168.91.0/24 --gateway 192.168.91.2 -o parent=ens33 -o macvlan_mode=bridge macnet
acbe125bd16f97d3922294ed5c2bc9b76b1036ee2c0274d7b1af90b988574525
[root@node ~]# docker network list
NETWORK ID          NAME                DRIVER              SCOPE
2ca267d05a8d        bridge              bridge              local
19abb1689b41        host                host                local
acbe125bd16f        macnet              macvlan             local
4bcffff15284        none                null                local      
[root@master docker]# docker network create -d macvlan --subnet 192.168.91.0/24 --gateway 192.168.91.2 -o parent=ens33 -o macvlan_mode=bridge macnet
35551f92a13aeb061b3fb78a23c079651c3de1753c9fe486f39037f50c0968aa
[root@master ~]# docker network list
NETWORK ID          NAME                DRIVER              SCOPE
fa248c027d7f        bridge              bridge              local
e3cd0c7dd8c2        host                host                local
35551f92a13a        macnet              macvlan             local
313e639a0dde        none                null                local               

创建容器

在master上创建c1 : 192.168.91.100 , c2 : 192.168.91.101

在node上创建c3 : 192.168.91.102 , c4 : 192.168.91.103

[root@master docker]# docker run -id --net macnet --ip 192.168.91.101 --name c2 docker.io/busybox sh
6c147982a1b2c90bef61758db9de3f4caaa718ab1df8e2648ae06706704c0a08
[root@master docker]# docker run -id --net macnet --ip 192.168.91.100 --name c1 docker.io/busybox sh
b94eef6f4ae9ec64b9de9ed6396e4c1be17dac1503671e22ffdfee4b80511f04
[root@master docker]# docker exec c1 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
7: eth0@if2: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:c0:a8:5b:64 brd ff:ff:ff:ff:ff:ffinet 192.168.91.100/24 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::42:c0ff:fea8:5b64/64 scope link valid_lft forever preferred_lft forever

测试是否work

[root@master ~]# docker exec c1 ping c1
PING c1 (192.168.91.100): 56 data bytes
64 bytes from 192.168.91.100: seq=0 ttl=64 time=0.091 ms
64 bytes from 192.168.91.100: seq=1 ttl=64 time=0.134 ms
64 bytes from 192.168.91.100: seq=2 ttl=64 time=0.143 ms

说明容器可以联通自己的IP地址,工作正常

联通性测试

背景

为了弄明白采用macVLAN网络模式的容器对外、对自己联通性如何,在c1上分别ping其他IP, 然后在master上也进行相同测试

结果

192.2(网关) c1(容器名称) 192.100(c1的IP) 192.133(master) 192.134(node) c2 192.101(c2的IP) c3(不同宿主机容器名) 192.102(c3的IP)
c1 × ×
192.2(网关) 192.100(c1的IP) 192.134(node) 192.102(c3的IP,跨主机容器)
master ×

延迟

背景

为了大致验证容器使用macVLAN后,从容器出发的数据包相比裸机直接通讯具有多少延迟,做此测试。

先测试从master到node的平均延迟:

node
master 0.426ms

结果

c1 c2(同宿主机) node c3(不同宿主机)
c1 0.174ms 0.185ms 0.731ms 0.771ms

结论

  • 使用macVLAN模式的容器,==无法ping通宿主机==,==宿主机也无法ping通该容器==。对其他服务器和所有的容器都可以联通。
  • 相比宿主机的通讯延迟,从c1到c3的延迟有所增加(==本测试增加了0.35ms==)

使用macVLAN网络模式的容器连通性和延迟的测试相关推荐

  1. 【Docke进阶篇】Docker网络模式与容器间通信

    本篇主要是Docker网络模式与容器间通信. 上一篇:[Docker基础篇]Docker核心概念与指令 文章目录 一.预备知识点 二.Docker网络模式 1.查看Docker网络模式 2.bridg ...

  2. 【Docker】容器的几种网络模式

    当你使用Docker时,你会发现需要了解很多关于网络的知识.Docker作为目前最火的轻量级容器引擎,因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求.本文介绍了Docker的4种 ...

  3. Docker容器-------网络模式,数据卷和数据卷容器

    目录 Docker网络实现原理 Docker的网络模式 Host模式 Container模式 none模式 bridge模式 自定义网络 查看网络模式列表 查看容器信息(包含配置.环境.网关.挂载.c ...

  4. Docker ❀ 容器内部/外部通信、端口映射、网络模式、自定义容器网络

    文章目录 1.网络通讯 命名空间类型 2.网络模式 Docker服务默认存在四组网络模式 3.端口映射 -p : 容器指定端口映射为本地随机端口: -p : 容器指定端口映射为本地指定端口: -p : ...

  5. Docker学习:容器五种(3+2)网络模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定义网络模式详解

    前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍容器网络模式, 属于了解范畴,充分了容器的网络模式,更有助于更好的理解Docker的容器之间的访问逻辑. 疑问:为什么要了解容器 ...

  6. docker容器的四种网络模式

    容器的四种网络模式 docker容器的四种网络模式:bridge 桥接模式.host 模式.container 模式和 none 模式 启动容器时可以使用 –net 参数指定,默认是桥接模式. 以下是 ...

  7. Docker6种网络配置详解,网络模式应该这么选

    文章目录 一.Bridge网络模式 二.Host网络模式 三.Overlay网络模式 四.None网络模式 五.Macvlan网络模式 六.Ipvlan网络模式 七.网络模式选择 在Docker中,网 ...

  8. Docker(十四):Docker:网络模式详解

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

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

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

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

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

最新文章

  1. 科技产品下一个重大突破将来自芯片堆叠技术
  2. 安装Subversion1.82(SVN)
  3. 写学生管理系统后的一些感想
  4. C51蜂鸣器和数码管动静态显示
  5. 利用 Win32 启动和检测 UWP App 的方法
  6. linux redhat配置yum源为网易(163)源的方法
  7. 计算机算法设计与分析 循环赛日程表
  8. shell脚本的学习(二)
  9. java thread与runnable联系区别
  10. 说服力:从场景化出发的用户价值
  11. 【模糊神经网络】基于matlab的模糊神经网络仿真
  12. u盘镜像制作linux系统,制作iso镜像U盘自动化安装linux系统
  13. 一种设想:打造小程序版本公号和自托管的公号,将你的网站/blog做到微信/微信公号里且与PC端合一
  14. BootStrap3 排版
  15. [C++STL] Priority Queue 介绍及源码分析
  16. 网传腾讯大规模裁员测试工程师,腾讯相关人员否认
  17. 服务器不能使用无线键盘,无线键盘突然没反应怎么回事_无线键盘没反应的解决方法...
  18. 天球坐标系和地球坐标系
  19. Windows XP 源代码在线泄露
  20. 从1.0到2.0:移动互联网入口战升级

热门文章

  1. Idea使用SVN下载运行项目
  2. 浅谈程序猿简历的写法,你会如何写你的简历呢。
  3. C# 大华相机图像采集
  4. 深度置信网络 Deep belief network
  5. react + hooks 中使用aliplayer
  6. 单片机 矩阵式按键
  7. linux系统查看网卡是否开启,查看Linux下网卡状态或 是否连接
  8. 基于PaddlePaddle2.0的蝴蝶图像识别分类——利用预训练残差网络ResNet101模型中参数的调整,数据增强
  9. vscode 经常弹出unins000.exe报错,尝试在目标目录创造文件时发生错误 重试 跳过这个文件 关闭安装程序
  10. linux sqlplus 历史命令,SQLPLUS下历史命令查找