Docker之网络模式

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: docker基础 网络模式

本地网络模式

docker提供了四种网络模式

docker run创建Docker容器时,可以用--net选项指定容器的网络模式

  • 默认网络模式-bridge

  • 无网络模式-none

所有加入到这个网络模式中的container,都"不能”进行网络通信
  • 宿主网络模式-host
网络模式将container与宿主机的网络相连通,虽然很直接,但是却破获了container的隔离性
  • 自定义网络-overlay
背景:
在docker 1.12之前时依靠第三方工具(etcd,consul,zookeeper)以k-v键值对方式存储 实现服务发现和DNS解析;
在docker 1.12 之后用自带 docker swarm来实现 “服务发现”和“DNS解析”
场景:
当我们在多个主机运行容器并且之间相互协同工作时,就选择Overlay模式

默认网络类型bridge

Docker设计的NAT网络模型
docker daemon启动时会自动创建一个Linux网桥(默认docker0 -b参数指定).

容器启动时,会创建一个veth pair(virtual eth pair)虚拟网络接口设备。
veth设备的特点是成对出现,数据出现在一端时,在另一端也会出现。Docker会将一端挂载到docker0网桥上,另一端放入容器的Network Namespace内,从而实现容器与主机通信的目的。bridge模式下的网络拓扑图如下图所示
avatar
总之,Docker网络的初始化动作包括:创建docker0网桥、为docker0网桥新建子网及路由、创建相应的iptables规则等。

跨主机模式通信

docker在跨主机网络通信采用CNM(容器网络模型)和CNI(容器网络接口)。而k8s和docker的通信采用的是CNI

CNM模式

libnetwork是CNM的原生实现,为docker daemon和网络驱动程序之间提供了接口。

网络驱动

  • 按照提供方可以分为原生驱动(libnetwork内置的或者docker支持的)和第三方驱动
  • 按照使用范围分为本地(单主机)和全局(多主机)

avatar

  • network sandbox 容器内部的网络栈
  • endpoint 一个通常成对出现的网络接口。一端在网络容器内,另一端在网络内。 一个Endpoints可以加入一个网络。一个容器可以有多个endpoints。
  • network 一个endpoints的集合。该集合内的所有endpoints可以互联互通

CNI模式

CNI(Conteinre Network Interface) 是 google 和 CoreOS 主导制定的容器网络标准,是一个协议。综合考虑了扩展性、ip 分配、多网卡。
协议连接了两个组件:容器管理系统和网络插件。它们之间通过 JSON 格式的文件进行通信,实现容器的网络功能。具体的事情都是插件来实现的,包括:创建容器网络空间(network namespace)、把网络接口(interface)放到对应的网络空间、给网络接口分配 IP 等等。
avatar

目录
相关文章
|
8天前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
14 5
|
8天前
|
调度 Docker 容器
docker swarm创建覆盖网络
【10月更文挑战第16天】
11 5
|
10天前
|
负载均衡 应用服务中间件 数据安全/隐私保护
docker swarm 创建 Swarm 模式下的网络
【10月更文挑战第14天】
13 6
|
9天前
|
负载均衡 网络协议 关系型数据库
docker swarm 使用网络启动服务
【10月更文挑战第15天】
15 4
|
10天前
|
应用服务中间件 nginx Docker
docker swarm创建覆盖网络
【10月更文挑战第14天】
12 3
|
9天前
|
数据安全/隐私保护 Docker 容器
docker swarm创建网络
【10月更文挑战第15天】
8 1
|
10天前
|
Docker 容器
docker swarm 在服务中使用网络
【10月更文挑战第14天】
9 2
|
6天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第23天】在数字时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术和安全意识等方面的内容,以帮助读者更好地了解如何保护自己的网络安全。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,我们将为读者提供一些实用的建议和技巧,以增强他们的网络安全防护能力。
|
1天前
|
SQL 安全 算法
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第28天】在数字时代的浪潮中,网络安全与信息安全成为保护个人隐私和企业资产的重要盾牌。本文将深入探讨网络安全中的常见漏洞,介绍加密技术的基本概念及其在保护数据中的应用,并强调提高安全意识的重要性。通过分析具体案例和提供实用的防护措施,旨在为读者提供一个全面的网络安全知识框架,以应对日益复杂的网络威胁。
11 4
|
1天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第28天】在数字化时代,网络安全和信息安全已经成为了我们生活中不可或缺的一部分。然而,随着技术的发展,网络安全漏洞也越来越多,加密技术和安全意识的重要性也越来越被人们所认识。本文将分享一些关于网络安全漏洞、加密技术和安全意识的知识,帮助读者更好地保护自己的网络信息安全。