Docker 架构设计

Docker vs 虚拟机

Docker 和 虚拟机的区别 https://blog.fundebug.com/2017/05/31/docker-and-vm/

Linux 操作系统

  • 内核层(Kernel Layer) 主要进程调度文件系统IO内存管理
  • 用户层 主要与系统内核进行交互

一般不同的linux版本,使用的是同一套内核代码,不同的是用户层的差异。

Docker 特点

  • 容器环境配置,无需再关心操作系统层
  • 多个容器之间相互隔离,可以共享宿主环境
  • 轻量级,可以快速启动
  • 支持自动缩扩容,可以主动释放、启动容器

Docker 架构

image

从底层技术来看的话,Docker 底层是依赖 Linux Kernel 的三项技术,分别是 Union FSCGroupsNamespaces

简单概括就是:

  • 利用Namaspces 做环境隔离限制
  • 利用CGroup做资源大小限制
  • 利用Union FS做容器的文件系统的轻量级虚拟化技术

具体分为:

  • Union File System 联合系统文件

主要是对文件系统进行分层。

Linux 中的文件系统有一个挂载(mount)功能,允许将一个外部系统(例如:usb、移动硬盘)以本地路径的形式去访问。

Union File System(Union FS),则类似上述 linux 的挂载机制。它是在挂载的基础上,可以将本地路径,挂载到多个目标目录。

Union FS 技术首先运用到镜像、容器中。当运行容器时,Docker 会自动挂载镜像中的文件目录,以及宿主机上的一个临时、可写的文件目录。容器中所有的文件修改,都会写入到宿主机的这个临时目录下,当容器销毁后,同时将这个临时文件也会删除。

$ docker run -d --name <container_name> --mount type=bind,source=$PWD,target=<container_dir> <image:tag>
  • Control Groups

这项技术可以限制应用程序使用的资源,可以让宿主同时运行多个容器而相互之间不受影响。CGroups 可以限定容器使用的硬件资源,比如内存数量,CPU数量。

  • Namespaces

Namespaces技术来隔离容器,当容器运行的时候,Docker创建了一系列的Namespaces。通过 Namespaces,容器运行在独立的命名空间中,而外层没有访问权限。

PID Namespaces  -- 用于进程的隔离
NET Namespaces  -- 用于管理网络接口
IPC Namespaces  -- 用于管理进程间的通信
MNT Namespaces  -- 用于管理 Mount 点
UTS Namespaces  -- 用于隔离内核和版本信息

Libcontainer: 是对上面三种技术进行封装的库
Docker engine: 用来控制容器 container 的运行,以及镜像文件的拉取

参考文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
《基于docker容器的高并发web系统架构设计与实现》随着互联网迅速发展,社交、媒体以及电商等web网站用户数量 越来越大,并发流量也越来越高,这对于传统web系统架构设计提出 新的挑战。本文基于docker容器虚拟化技术来设计实现高并发web系 统架构,实现web系统的高并发、易扩展以及提升系统资源利用均衡 率等功能。 本文基于docker容器以及Kubemetes容器集群技术,从负载均 衡、弹性伸缩以及资源调度等方面设计实现容器化高并发web系统架 构。设计实现基于工作负载特性的动态负载均衡策略,能够实现根据 不同负载类型以及容器集群资源利用率而实时调整容器集群服务的 权重;设计实现基于灰度模型短时间负载预测弹性伸缩策略,能够实 现高效容器集群弹性伸缩以及提升系统并发性能;设计实现基于蚁群 算法并行调度策略,能够有效提升容器集群整体调度效果,提高容器 服务集群的可用性以及改善系统的资源利用均衡率等。 基于docker容器的高并发web系统架构能够实现系统的高并发、 易扩展以及提升系统集群的资源利用率等功能。经过系统测试分析, 基于工作负载特性的动态负载均衡策略比传统轮询、加权轮询策略在 高并发流量下有更好的吞吐量以及响应时间等性能表现,基于灰度模 型预测的弹性伸缩机制比传统KubemetesHPA机制在短时间内具有 更好的集群伸缩特性以及基于蚁群算法的并行容器调度策略比传统 Kubemetesdefaults策略有更高的调度优势,能够有效提升容器的均 匀分发,实现系统高可用性以及提升系统的资源利用均衡率等。 基于docker容器技术高并发web系统架构设计,能够有效解决 当前高并发流量下web系统流量转发、集群伸缩以及资源调度等问 题,对于容器技术的具体应用研究以及高并发系统架构的设计具有一 定的实用价值。 关键词:高并发web系统,容器虚拟化,动态负载均衡,弹性伸 缩,并行资源调度
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值