docker网络 bridge 与overlay 模式

简介: docker网络 bridge 与overlay 模式

转载请注明出处:

1.bridge网络模式

1.1工作原理:

   在Bridge模式中,Docker通过创建一个虚拟网络桥接器(bridge)将容器连接到主机上的物理网络接口。每个容器都会被分配一个IP地址,使得它们可以相互通信,并且可以与主机进行通信。

Docker的Bridge网络模式是默认的网络配置选项,它提供了容器之间以及容器与主机之间的通信功能。 

1.2特性:

  1. 每个容器都有自己的网络命名空间,并分配一个IP地址。
  2. 容器之间可以通过IP地址进行通信。
  3. 容器与主机之间可以通过NAT进行通信。
  4. Docker守护进程会为每个容器创建一对虚拟网卡(veth pair),其中一个接口连接到容器的网络命名空间,另一个接口连接到宿主机的Bridge网络。
  5. 特征图参考:

 

1.3配置:

  1. 默认情况下,Docker在安装时会创建一个名为docker0的Bridge网络。可以使用以下命令查看已存在的Bridge网络:
docker network ls

  2.创建自定义的Bridge网络:

docker network create <network_name>

  3.使用自定义的Bridge网络启动容器:

docker run --network=<network_name> <image_name>

  4.查看当前的bridge的docker网络配置有哪些

docker network ls --filter driver=bridge

                 

  5.查看某个网络下的配置详情

docker network inspect network_id

                     

1.4应用场景:

  Docker Bridge模式主要用于单主机上的容器通信,适用于简单的应用场景,如开发和测试环境。

1.5与overlay的区别

  • Overlay网络需要使用Docker Swarm或Kubernetes等编排工具来实现多主机的容器编排和管理。
  • 每个主机上都会创建一个虚拟网络接口(VXLAN),用于连接各个主机上的容器。
  • Overlay网络使用覆盖网络技术,在运行时将数据包封装在UDP协议中,并通过底层网络传输到其他主机上。

2.Overlay 网络模式

2.1工作原理:

  在Overlay模式中,Docker使用VXLAN(Virtual Extensible LAN)技术来创建一个虚拟网络,将多个Docker主机上的容器连接到同一个网络中。这意味着容器可以通过Overlay网络进行透明的跨主机通信,就好像它们在同一个物理网络上一样。

2.2特性:

  Docker的Overlay网络是一种用于构建多主机容器网络的网络驱动程序。它具有以下特性:

  1. 多主机通信:Overlay网络允许位于不同Docker宿主机上的容器之间进行通信,无论这些宿主机在物理网络上的位置如何。
  2. 跨主机连接:Overlay网络可以跨越多个Docker宿主机,创建一个虚拟的网络层,它隐藏了底层主机的物理网络细节。
  3. 容器扩展性:使用Overlay网络,可以轻松地添加、移除或迁移容器,而无需调整底层网络配置。
  4. 安全性:Overlay网络支持加密和认证,确保跨主机容器之间的通信是安全的。

2.3配置:

  要配置和使用Overlay网络,需要执行以下步骤:

  1. 创建一个Overlay网络:使用docker network create命令创建Overlay网络,并指定网络的驱动程序为overlay
  2. 连接容器到Overlay网络:使用--network选项将容器连接到已创建的Overlay网络。

2.4docker swarm 配置overlay

  1. 首先,确保所有需要加入Overlay网络的Docker宿主机之间可以相互通信。这通常需要配置正确的网络连接,例如通过公共网络或专用网络进行连接。
  2. 初始化Overlay网络的主节点。选择一台Docker宿主机作为主节点,并在该节点上创建一个Overlay网络。运行以下命令:
docker network create --driver overlay <network_name>

  <network_name>替换为您想要为Overlay网络指定的名称。

  3. 加入其他Docker宿主机到Overlay网络。在每个要加入Overlay网络的Docker宿主机上,运行以下命令

docker swarm join --token <join_token> <manager_ip>:<manager_port>

  <join_token>是从主节点获得的加入令牌,<manager_ip><manager_port>是指向主节点的IP地址和端口。

  4.一旦其他Docker宿主机加入了Overlay网络,它们就可以直接通过容器名称进行通信,而无需担心它们在哪个宿主机上运行。例如,如果您在Overlay网络上运行了名为my_container的容器,并且该容器分别在两台Docker宿主机上运行,则可以使用容器名称直接进行通信,无需关心容器所在的宿主机。

  5.查看overlay网络

docker network ls --filter driver=overlay

         

  6.查看overlay网络下的结点列表

docker node ls

2.5 overLay 如何与主机通信:

  1. 创建Overlay网络后,Docker会在每个主机上创建一个虚拟网络的子网段,并分配给Overlay网络。
  2. 当容器加入Overlay网络时,Docker会为其分配一个虚拟IP地址,并更新主机的路由规则。这样,容器可以直接使用虚拟IP地址进行通信。
  3. Docker使用VXLAN(Virtual Extensible LAN)协议来实现Overlay网络的跨主机通信。VXLAN在底层网络上封装容器的数据包,使其能够跨主机传输。
  4. 当容器需要与其他主机上的容器通信时,Docker会将数据包封装在VXLAN中,并通过底层网络将其发送到目标主机。
  5. 目标主机上的Docker解析VXLAN包,提取容器数据包,并将其传递给目标容器。

  通过这种方式,Overlay网络使得分布式应用程序中的容器可以方便地进行跨主机通信,而不必手动配置网络或关注底层网络细节。

2.6适用场景:

  • 多主机容器编排:Overlay网络使得在多台主机上运行的容器可以以一个逻辑网络的形式互相通信,这对于分布式应用程序和容器编排工具(如Docker Swarm和Kubernetes)非常有用。
  • 跨数据中心通信:如果有多个数据中心,Overlay网络可以帮助容器在不同的数据中心之间建立连接,使得跨地理边界的容器之间可以安全、可靠地通信。

2.7与bridge的区别和差异

  • Bridge网络适用于单主机上的容器通信,而不涉及多个主机之间的跨主机通信。
  • 每个主机上都有一个名为docker0的虚拟网桥,作为宿主机上所有容器的默认网络接口。
  • Bridge网络使用IP地址和端口映射来实现容器之间以及容器与宿主机之间的通信。

 

标签: docker

相关文章
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
1967 39
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
657 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
624 20
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
1544 8
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
772 6
|
SQL 监控 安全
网络安全与信息安全:漏洞、加密与安全意识
随着互联网的迅猛发展,网络安全和信息安全问题日益受到关注。本文深入探讨了网络安全漏洞、加密技术以及提高个人和组织的安全意识的重要性。通过分析常见的网络攻击手段如缓冲区溢出、SQL注入等,揭示了计算机系统中存在的缺陷及其潜在威胁。同时,详细介绍了对称加密和非对称加密算法的原理及应用场景,强调了数字签名和数字证书在验证信息完整性中的关键作用。此外,还讨论了培养良好上网习惯、定期备份数据等提升安全意识的方法,旨在帮助读者更好地理解和应对复杂的网络安全挑战。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
554 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
413 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
390 10

热门文章

最新文章