Docker之网络模式

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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

目录
相关文章
|
1月前
|
应用服务中间件 nginx Docker
Docker网络管理
Docker网络管理
26 1
|
2月前
|
NoSQL 网络协议 Redis
Nomad 系列 -Nomad 网络模式
Nomad 系列 -Nomad 网络模式
|
1天前
|
运维 前端开发 Devops
云效产品使用报错问题之流水线打包docker镜像时报网络代理有问题如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
11天前
|
存储 安全 测试技术
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
18 0
|
1月前
|
负载均衡 算法 应用服务中间件
Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)
Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)
97 0
|
1月前
|
关系型数据库 MySQL 数据库
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
39 0
|
2月前
|
测试技术 Linux 数据安全/隐私保护
【好用的个人工具】在Docker环境下部署WatchYourLAN轻量级网络IP扫描器
【2月更文挑战第2天】在Docker环境下部署WatchYourLAN轻量级网络IP扫描器
99 0
|
2月前
|
消息中间件 安全 网络安全
【网络安全 | Kali】基于Docker的Vulhub安装教程指南
【网络安全 | Kali】基于Docker的Vulhub安装教程指南
56 0
|
1月前
|
机器学习/深度学习 数据采集 人工智能
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
40 0
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真