泊坞窗基本概念与架构


什么是容器?

  • 一种虚拟化的方案
  • 操作系统级别的虚拟化
  • 只能运行相同或相似内核的操作系统
  • 依赖于Linux内核特性:Namespace和Cgroups(控制组)

Linux容器技术vs虚拟机

什么是多克?

  • 将应用程序自动部署到容器
  • 去语言开源引擎Github地址:https://github.com/docker/docker
  • 2013年初dotCloud
  • 基于Apache2.0的开源授权协议发行

泊坞窗的目标

  • 提供简单轻量的建模方式
  • 职责的逻辑分离
  • 快速高效的开发生命周期
  • 鼓励使用面向服务的架构

泊坞窗的使用场景

  1. 使用泊坞窗容器开发,测试,部署服务。
  2. 创建隔离的运行环境
  3. 搭建测试环境
  4. 构建多用户的平台即服务(PaaS的)基础设施
  5. 提供软件即服务(SaaS)的应用程序
  6. 高性能,超大规模的宿主机部署

码头工人的基本组成

  • Docker Client客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • Docker Container容器
  • Docker Registry仓库

泊坞客户端/守护进程

  • C / S架构
  • 本地/远程

Docker Image镜像

  • 容器的基石
  • 层叠的只读文件系统
  • 联合加载(union mount)

Docker Container容器

  • 通过镜像启动
  • 启动和执行阶段
  • 写时复制(copy on write)

Docker Registry仓库

  1. 公有
  2. 私有
  3. Docker Hub

泊坞窗容器的相关技术简介

泊坞窗依赖的Linux的内核特性

  • 命名空间命名空间
  • 对照组(cgroups)控制组

命名空间命名空间:

  • 编程语言:封装 - >代码隔离
  • 操作系统:系统资源的隔离(进程,网络,文件系统......)

命名空间命名空间的五种隔离技术

  • PID(进程ID)进程隔离
  • NET(网络)管理网络接口
  • IPC(InterProcess Communication)管理跨进程通信的访问
  • MNT(山)管理挂载点
  • UTS(Unix Timesharing System)隔离内核和版本标识

控制组控制组

  • 用来分配资源
  • 来源于谷歌
  • Linux内核2.6.24@2007

控制组控制组可以做什么?

  • 资源限制
  • 优先级设定
  • 资源计量
  • 资源控制

泊坞窗容器的能力

  • 文件系统隔离:每个容器都有自己的根文件系统
  • 进程隔离:每个容器都运行在自己的进程环境中
  • 网络隔离:容器间的虚拟网络接口和IP地址都是分开的
  • 资源隔离和分组:使用的cgroup将CPU和内存之类的资源独立分配给每个泊坞容器

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐