操作系统级虚拟化——学习笔记

来源:互联网 发布:程序员必备软件 编辑:程序博客网 时间:2024/05/16 14:34

容器生态系统

  • jails -> LXC -> Docker -> Windows Container
  • 引擎
    • Docker
    • runC
    • Rkt
    • LXC
  • 容器云服务器 Docker
    • Docker
    • ECS
    • GKE (google)
    • DaoCloud、Alauda(国内初创公司)
  • 容器编排与管理
    • Swarm+Compose(Docker主推,上手简单,与Docker紧耦合)
    • Kubernetes(google自身数据中心管理调度,Borg的开源版本)
      • 业界使用最广泛的容器编排与管理系统
    • Mesos+Marathon (伯克利的,Mesos用于大规模数据中心资源调度,Marathon专门用于容器方面的处理)
  • 面向容器的OS
    • CoreOS
    • Project Atomic
    • Rancher OS
    • Project Photon
  • 容器镜像仓库
    • Docker Hub
    • CoreOS Registry
    • Daocloud registry
    • 私有 registry
  • 监控
    • cAdvisor等

Docker和rkt、runC关系

  • Docker走平台化路线
  • 另一拨成立CoreOS,走小而精路线,得Rocket(rkt),有google、VMWare等支持
  • 统一标准,妥协得runC

Docker与LXC

  • Docker最早基于LXC,后发展libcontainer(1.10放弃LXC)

什么是Docker

  • 不仅是容器,也是引擎
  • 不仅是虚拟化技术,更是应用开发、移植的平台

背景

  • 复杂应用环境,要求能够高效整合应用及其依赖,避免应用间的影响
  • 复杂硬件环境,要求应用能够高效部署在不同硬件环境

docker

  • 容器内、外单独考虑,不影响

Docker特征

  • 无关内容、无关硬件
  • 内容隔离(隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库)
  • 自动化
  • 职责分离

容器与虚拟机

  • 虚拟机需要一个虚拟机管理软件,管理各虚拟机,每个操作系统独立,支持其相关应用
  • 容器免去了各个独立操作系统,实现架构更简洁(见上docker特征的内容隔离),但底层硬件或者说操作系统限制了能跑的应用
  • 容器是轻量级的,启动快、资源占用少,可支持的量多,但不是完全隔离
    • 安全隔离
      一个出错不会影响到其他的或是主机
    • 性能隔离
      相互之间有无性能影响

Docker应用

Docker container是Docker架构中服务交付的最终体现形式
在docker的网站上提到了docker的典型场景(摘自百度百科):

  • Automating the packaging and deployment of applications(使应用的打包与部署自动化)
  • Creation of lightweight, private PAAS environments(创建轻量、私密的PAAS环境)
  • Automated testing and continuous integration/deployment(实现自动化测试和持续的集成/部署)
  • Deploying and scaling web apps, databases and backend services(部署与扩展webapp、数据库和后台服务)

Docker架构

  • 用户使用docker client
  • Docker Daemon作为主体,其中server接收,Engine执行(job作为最基本的工作执行单元)
  • 镜像仓库
  • 驱动模块,执行engine下来的各种任务
  • 已下载容器镜像管理(Graph)
  • libcontainer,一整套标准接口用于上层对容器的管理,隔离底层与上层,使得也能够运行在windows上
  • kernel

Docker工作方式

  • (类似github?)用户 dockerfile ==build==> 镜像 ==tag==push==> 远程==pull==> 本地(run)==commit==> 新镜像

Docker run

  • 创建Docker容器所需的rootfs;
  • 创建容器的网络等运行环境,并真正运行用户指令

Docker底层技术

  • Namespace
    • 隔离
  • Cgroup
    • 资源分配
  • OverlayFS 层次文件系统
0 0
原创粉丝点击