当前位置: 首页 > news >正文

Docker与Vmware网络模式的对别

前言

在使用了很久的VMware和Docker后,分别独立配置过他们的网络,但是每次配置一方时,总感觉和另一方有点不一样,但是也没有来得及总结。刚好最近有时间可以总结一下。
重点:
1、VMware的桥接模式和Docker的桥接模式完全不一样
2、VMware的host模式和Docker的host模式完全不一样
3、Docker比VMware多一个container模式(有点多个容器打包为一个k8s的Pod的感觉)
4、Docker的自定义模式(macvlan)和VMware的桥接模式很像

具体网络模式对比

1、桥接模式

VMware

重点:
1、虚拟机与宿主机网络地位相等

2、数据包的分发由操作系统路由表进行分发

VMware的桥接模式通过虚拟的一个网卡(VMnet0)和各个虚拟机的网卡进行连接。每个虚拟主机都有一个自己的IP地址和MAC地址。(即宿主机和虚拟机在网络环境中的地址是等同的)

Docker

重点:
1、容器借用宿主机端口对外通信,没有自己的外部ip地址,但是有内部局域网(Bridge)的地址

2、数据包的分发由操作系统路由表进行分发

Docker启动时,会默认建立一个虚拟桥接网卡Docker0,网络模式为Bridge。
在这里插入图片描述

桥接模式下启动每个docker容器时,都会新建一对网卡,分别为veth-xxx,和br-xxx。

// 桥接模式启动命令(没有指定网络模式默认使用Bridge网卡的桥接)
docker run --name tomcat -d --network bridge --ip xxx:xxx:xxx:xxx -p 80:80 tomcat

其中,veth-xxx用来和宿主机的网络空间进行通信,br-xxx用来作为容器内部和外部通信的虚拟网卡。
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

2、host模式

VMware

重点:
1、虚拟机仅仅能和宿主机、同宿主机的其他虚拟机通信

2、数据包的分发由操作系统路由表进行分发

VMware 会创建一个虚拟网卡(如 VMnet1),用于连接虚拟机和宿主机。然后默认通过DHCP给每个虚拟机分配一个ip地址。

Docker

重点:
1、容器直接连接宿主机的物理网卡,会占用宿主机的端口,且无法指定端口

容器如果对外暴露了80端口,如果采用host模式,则容器的80端口会直接绑定在宿主机的80端口上且不能修改。(如果发生了容器和宿主机发生了端口冲突就gg)

// host模式启动tomcat
docker run --name tomcat -d --network host tomcat

优点:省略了很多转发步骤,通信效率提高了。

总结

在这里插入图片描述

Container模式

Docker

重点:
1、一个容器把另一个容器作为宿主机进行端口暴露

这个是Docker特有的网络模式,挺抽象的一个模式。(实际很少用到)
具体来说,就是有两个A,B容器存在协作关系,且B容器对外不进行暴露。于是,B容器可以通过A容器的端口与自己端口的映射实现间接暴露。
讲个场景:
A,B,C,Nginx四个容器,其中D需要管理其他三个容器的进入流量。于是Nginx容器将自己的80端口暴露在三个容器的80端口上,于是访问三个容器的80端口的流量都会先转发到Nginx容器过滤后,再由Nginx进行转发。

// container模式启动nginx
docker run -d --name nginx --net container:tomcat nginx

优点:
1、隔离性好,少占用一个IP地址

总结

在这里插入图片描述

None模式

Docker

也是docker特有的一个模式,可以自己配置网卡、ip等信息。
感觉主要是项目上线的优化。

自定义模式

Docker

重点:
1、容器有了自己的ip,可以在其他主机进行ping操作了

也是docker特有的一个模式,使用macvlan驱动实现。macvlan驱动是linux kernel的模块,允许主机在同一个物理网卡上配置多个MAC地址。
通过给容器mac地址和ip,绕过docker0,直接与物理网络进行连接。
在这里插入图片描述

相关文章:

  • MongoDB的下载安装与启动
  • Laravel+API 接口
  • 爬虫学习笔记(五)---数据解析之re
  • MyBatis、MyBatis-Plus、Hibernate、Spring Data JPA 等 Java 持久层技术的理解和对比
  • 【学习笔记】计算机操作系统(二)—— 进程的描述与控制
  • 源码编译安装LAMP
  • 空间权重矩阵
  • 阿里云服务器 篇十三:Web书签(链接共享和迷你导航)
  • 强化学习贝尔曼方程推导
  • MCP协议的起源与发展历史:从基础通信到现代分布式系统的支撑者
  • Spring Boot 集成 ActiveMQ 实现异步消息通信(一)
  • 三格电子——四路CAN转4G网关使用中的常见问题
  • 人工智能和机器学习在包装仿真中的应用与价值
  • computed计算值为什么还可以依赖另外一个computed计算值?
  • 基于开闭原则优化数据库查询语句拼接方法
  • 再学GPIO(三)
  • transform-实现Encoder 编码器模块
  • HHsuite同源序列搜索数据库构建
  • 混淆矩阵(Confusion Matrix)横坐标
  • GrapesJS 终极定制组件设计方案:扁平化对象属性编辑、多区域拖拽、多层嵌套与组件扩展实战
  • 排除燃气爆炸、人为放火可能,辽宁辽阳火灾事故起火原因正在调查
  • 智能终端出海服务创新联合体成立
  • 朝鲜新型驱逐舰“崔贤”号进行多项武器试验
  • 2024“好评中国”网络评论大赛结果揭晓
  • 中国人保聘任田耕为副总裁,此前为工行浙江省分行行长
  • 中行一季度净赚超543亿降2.9%,利息净收入降逾4%