docker网络 bridge 与overlay 模式
转载请注明出处:
1.bridge网络模式
工作原理:
在Bridge模式中,Docker通过创建一个虚拟网络桥接器(bridge)将容器连接到主机上的物理网络接口。每个容器都会被分配一个IP地址,使得它们可以相互通信,并且可以与主机进行通信。
Docker的Bridge网络模式是默认的网络配置选项,它提供了容器之间以及容器与主机之间的通信功能。
特性:
每个容器都有自己的网络命名空间,并分配一个IP地址。
容器之间可以通过IP地址进行通信。
容器与主机之间可以通过NAT进行通信。
Docker守护进程会为每个容器创建一对虚拟网卡(veth pair),其中一个接口连接到容器的网络命名空间,另一个接口连接到宿主机的Bridge网络。
配置:
默认情况下,Docker在安装时会创建一个名为
docker0的Bridge网络。可以使用以下命令查看已存在的Bridge网络:
docker network ls
2.创建自定义的Bridge网络:
docker network create <network_name>
3.使用自定义的Bridge网络启动容器:
docker run --network=<network_name> <image_name>
应用场景:
Docker Bridge模式主要用于单主机上的容器通信,适用于简单的应用场景,如开发和测试环境。
与overlay的区别
- Overlay网络需要使用Docker Swarm或Kubernetes等编排工具来实现多主机的容器编排和管理。
- 每个主机上都会创建一个虚拟网络接口(VXLAN),用于连接各个主机上的容器。
- Overlay网络使用覆盖网络技术,在运行时将数据包封装在UDP协议中,并通过底层网络传输到其他主机上。
2.Overlay 网络模式
工作原理:
在Overlay模式中,Docker使用VXLAN(Virtual Extensible LAN)技术来创建一个虚拟网络,将多个Docker主机上的容器连接到同一个网络中。这意味着容器可以通过Overlay网络进行透明的跨主机通信,就好像它们在同一个物理网络上一样。
特性:
Docker的Overlay网络是一种用于构建多主机容器网络的网络驱动程序。它具有以下特性:
多主机通信:Overlay网络允许位于不同Docker宿主机上的容器之间进行通信,无论这些宿主机在物理网络上的位置如何。
跨主机连接:Overlay网络可以跨越多个Docker宿主机,创建一个虚拟的网络层,它隐藏了底层主机的物理网络细节。
容器扩展性:使用Overlay网络,可以轻松地添加、移除或迁移容器,而无需调整底层网络配置。
安全性:Overlay网络支持加密和认证,确保跨主机容器之间的通信是安全的。
overLay 如何与主机通信:
创建Overlay网络后,Docker会在每个主机上创建一个虚拟网络的子网段,并分配给Overlay网络。
当容器加入Overlay网络时,Docker会为其分配一个虚拟IP地址,并更新主机的路由规则。这样,容器可以直接使用虚拟IP地址进行通信。
Docker使用VXLAN(Virtual Extensible LAN)协议来实现Overlay网络的跨主机通信。VXLAN在底层网络上封装容器的数据包,使其能够跨主机传输。
当容器需要与其他主机上的容器通信时,Docker会将数据包封装在VXLAN中,并通过底层网络将其发送到目标主机。
目标主机上的Docker解析VXLAN包,提取容器数据包,并将其传递给目标容器。
通过这种方式,Overlay网络使得分布式应用程序中的容器可以方便地进行跨主机通信,而不必手动配置网络或关注底层网络细节。
配置:
要配置和使用Overlay网络,需要执行以下步骤:
创建一个Overlay网络:使用
docker network create命令创建Overlay网络,并指定网络的驱动程序为overlay。连接容器到Overlay网络:使用
--network选项将容器连接到已创建的Overlay网络。
适用场景:
多主机容器编排:Overlay网络使得在多台主机上运行的容器可以以一个逻辑网络的形式互相通信,这对于分布式应用程序和容器编排工具(如Docker Swarm和Kubernetes)非常有用。
跨数据中心通信:如果有多个数据中心,Overlay网络可以帮助容器在不同的数据中心之间建立连接,使得跨地理边界的容器之间可以安全、可靠地通信。
与bridge的区别和差异
- Bridge网络适用于单主机上的容器通信,而不涉及多个主机之间的跨主机通信。
- 每个主机上都有一个名为
docker0的虚拟网桥,作为宿主机上所有容器的默认网络接口。 - Bridge网络使用IP地址和端口映射来实现容器之间以及容器与宿主机之间的通信。
docker网络 bridge 与overlay 模式的更多相关文章
- docker 网络的几种模式
docker 网络分为单机和多机,我们来了解一下docker的单机网络 docker单机网络分为以下几种: 1)bridge NetWork,使用--net=bridge指定,默认设置.2)Host ...
- Docker网络模式
[编者的话] 本文是<Docker网络及服务发现>一书的一个章节,介绍了搭建Docker单主机网络的基础内容.关于Docker网络的更多内容,包括多主机的网络,请参考该书的其他章节. @C ...
- Docker网络及命令
Docker常用命令 docker version #查看版本 docker search centos #搜索可用docker镜像 docker images 查看当前docker所有镜像 dock ...
- Docker的bridge和macvlan两种网络模式
项目上部署的Docker集群创建的容器网络遇到问题,借机会学习了一下docker的网络模式,其他类型我们用的不多,这里只列举我们常用的bridge和macvlan两种,下面的描述和截图有一些是直接从网 ...
- docker 网络模式 和 端口映射
docker 的 网络模式 docker 自带 3 种 网络模式:分别是bridge网络,host网络,none网络,可以使用 docker network ls 命令查看. 1.none网络 这 ...
- Docker网络模式介绍
一.概述 docker的网络驱动有很多种方式,按照docker官网给出的网络解决方案就有6种,分别是:bridge.host.overlay.macvlan.none.Network plugins, ...
- Docker网络模式详解
一.Docker四种工作模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .hosthost:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用 ...
- docker容器网络bridge
我们知道docker利用linux内核特性namespace实现了网络的隔离,让每个容器都处于自己的小世界里面,当这个小世界需要与外界(宿主机或其他容器)通信的时候docker的网络就发挥作用了,这篇 ...
- docker 网络4种模式
1.host 模式,使用docker run 时 使用--net=host 指定 docker 使用的网络和宿主机一样,在容器上看到的网卡ip就是宿主机上的ip 2.container 模式,使用-- ...
- Docker - 运行 containers 使用在 swarm 模式下创建的 overlay 模式的 network
前言 在Docker engine v1.12, 使用Swarm可以方便的创建overlay模式的网络,但是它只能被swarm下面的service所使用的,相对于container,这个网络是完全隔离 ...
随机推荐
- 2020-12-07:go中,slice的底层数据结构是什么?
福哥答案2020-12-07: 源码位于runtime/slice.go文件中的slice结构体. type slice struct { array unsafe.Pointer len int c ...
- 2022-05-02:给定一个数组arr,一个正数num,一个正数k, 可以把arr中的某些数字拿出来组成一组,要求该组中的最大值减去最小值<=num, 且该组数字的个数一定要正好等于k, 每个数字只
2022-05-02:给定一个数组arr,一个正数num,一个正数k, 可以把arr中的某些数字拿出来组成一组,要求该组中的最大值减去最小值<=num, 且该组数字的个数一定要正好等于k, 每个 ...
- 2022-01-10:路径交叉。给你一个整数数组 distance 。 从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南
2022-01-10:路径交叉.给你一个整数数组 distance . 从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南 ...
- 2021-09-01:三数之和。给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
2021-09-01:三数之和.给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组. ...
- vue全家桶进阶之路37:Vue3 路由守卫
在 Vue.js 3.x 中,我们可以使用路由守卫来拦截路由的跳转,从而实现一些功能,例如:登录验证.页面权限控制等. Vue.js 3.x 中的路由守卫和 Vue.js 2.x 中的基本相同,都包含 ...
- WARNING: The repository located at mirrors.aliyun.com is not a trusted or secure host and is being
更换下载源: https://pypi.tuna.tsinghua.edu.cn/simple/
- es笔记三之term,match,match_phrase 等查询方法介绍
本文首发于公众号:Hunter后端 原文链接:es笔记三之term,match,match_phrase 等查询方法介绍 首先介绍一下在 es 里有两种存储字符串的字段类型,一个是 keyword,一 ...
- js原型和原型链(用代码理解代码)
众所周知js原型及原型链是很多开发者的一个疼点(我也不例外),我也曾多次被问起,也问过不少其他人,如果在自己没有真正的去实践和理解过:那么突然之间要去用最简单的话语进行概述还真不是一件容易的事情: 其 ...
- Python基础 - 解释性语言和编译性语言
什么是机器语言 计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序. 如何把我们写的代码 ...
- 自定义 coding.net 静态网站域名
点击文章左下角 "阅读原文",预览本文章的示例站点. 在上一篇文章<使用 coding.net 发布你的个人博客>,我们介绍了怎么在 coding.net 部署个人的静 ...