好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

容器技术之Docker幻灯片.ppt

39页
  • 卖家[上传人]:日度
  • 文档编号:135150015
  • 上传时间:2020-06-12
  • 文档格式:PPT
  • 文档大小:1.79MB
  • / 39 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 容器技术之Docker 任梓涵24320151153214 1 提纲 容器技术的基本概念容器技术的历史容器技术之Docker 2 什么是容器 容器容器就是一个认为只有其本身在运行状态的linux程序 只服从用户指定的命令容器程序有自己的IP地址一个可访问网络的独立设备 3 容器化VS虚拟化 虚拟机 4 容器化VS虚拟化 容器 5 提纲 容器技术的基本概念容器技术的历史容器技术之Docker 6 最早的OS级虚拟化 Chroot 改变根目录1982年出现只提供有限的文件系统隔离 无任何其他隔离手段不安全 有手段可以逃离设定的根目录访问hostpivot root 改变根文件系统2000年 Linux内核版本2 3 41没有chroot的安全问题 7 商用容器技术的出现 Virtuozzo2000年由Swsoft 现在的Paralles 开发Linux VServer2001年应用场景VirtualPrivateServer 8 开源的OpenVZ OpenVZ openvirtuozzo 2005年发布开始推动OpenVZ进Linux内核主线 9 内核主线的容器技术 Namespace CgroupNamespace程序运行环境的隔离基本原理 将内核中的全局变量改为per namespace变量Cgroup计算资源的QoS CPU 内存 磁盘IO 网络IO 10 Namespace 11 Namespace的类别 12 Cgroup Task 一个进程Controlgroup 控制族群 按照某种标准划分的进程组Hierarchy 层级 controlgroup可以形成树形的结构 有父节点 子节点 每个节点都是一个controlgroup 子节点继承父节点的特定属性Subsystem 子系统 就是资源控制器 13 Cgroup子系统 14 子系统介绍 blkio设置限制每个块设备的输入输出控制 例如 磁盘 光盘以及usb等等 cpu使用调度程序为cgroup任务提供cpu的访问 cpuacct产生cgroup任务的cpu资源报告 cpuset如果是多核心的cpu 这个子系统会为cgroup任务分配单独的cpu和内存 devices允许或拒绝cgroup任务对设备的访问 freezer暂停和恢复cgroup任务 memory设置每个cgroup的内存限制以及产生内存资源报告 net cls标记每个网络包以供cgroup方便使用 ns名称空间子系统 perf event增加了对每group的监测跟踪的能力 15 Linux容器虚拟技术 LXC LinuxContainer通过虚拟化操作系统的方式来管理代码和应用程序轻量级虚拟化隔离进程和资源不需要提供指令解释机制资源孤立分组由单个操作系统管理的资源划分到孤立的组在孤立的组之间平衡有冲突的资源使用需求 16 Linux容器虚拟技术 LXC 与传统虚拟化技术相比与宿主机使用同一个内核 性能损耗小不需要指令级模拟容器可以在CPU核心的本地运行指令 不需要任何专门的解释机制避免了准虚拟化和系统调用替换中的复杂性轻量级隔离 在隔离的同时还提供共享机制 以实现容器与宿主机的资源 例如文件系统 共享 17 容器技术历史 18 提纲 容器技术的基本概念容器技术的历史容器技术之Docker 19 Docker生态系统 20 Docker是dotCloud公司开源的一个基于轻量级虚拟化技术的容器引擎项目 整个项目基于Go语言开发 并遵从Apache2 0协议 目前 Docker可以在容器内部快速自动化部署应用 并可以通过内核虚拟化技术 namespaces及cgroups等 来提供容器的资源隔离与安全保障等 由于Docker通过操作系统层的虚拟化实现隔离 所以Docker容器在运行时 不需要类似虚拟机 VM 额外的操作系统开销 提高资源利用率 并且提升诸如IO等方面的性能 什么是Docker 21 web应用的自动化打包和发布 自动化测试和持续集成 发布 在服务型环境中部署和调整数据库或其他的后台应用 从头编译或者扩展现有的OpenShift或CloudFoundry平台来搭建自己的PaaS环境 应用场景 22 总架构图 23 DockerVSVM 24 Docker的特性 在多个机器之间提供便捷的部署策略提供了应用镜像的自动构建机制组件复用共享Docker提供了创建 部署容器的API 并且有大量工具集成了Docker的特性 来为第三方平台 OpenstackNova等 提供更多功能 25 三个基本组件 DockerClient是用户界面 它支持用户与DockerDaemon之间通信 DockerDaemon运行于主机上 处理服务请求 DockerIndex是中央registry 支持拥有公有与私有访问权限的Docker容器镜像的备份 26 三个基本元素 DockerContainers负责应用程序的运行 包括操作系统 用户添加的文件以及元数据 DockerImages是一个只读模板 用来运行Docker容器 DockerFile是文件指令集 用来说明如何自动创建Docker镜像 27 Docker的核心 28 Docker的支柱 Namespaces充当隔离的第一级 确保一个容器中运行一个进程而且不能看到或影响容器外的其它进程 ControlGroups是LXC的重要组成部分 具有资源核算与限制的关键功能 UnionFS 文件系统 作为容器的构建块 为了支持Docker的轻量级以及速度快的特性 它创建层与用户 29 工作方式 30 31 Docker命令 dockerinfo 32 sudodockerpullbusybox 33 dockerrunbusybox bin echoHelloDocker 34 sample job dockerrun dbusybox bin sh c whiletrue doechoDocker sleep1 done 35 36 Docker优点 快 运行时的性能可以获取极大提升 经典的案例是提升97 管理操作 启动 停止 开始 重启等等 都是以秒或毫秒为单位的 敏捷 像虚拟机一样敏捷 而且会更便宜 在baremetal 裸机 上布署像点个按钮一样简单 灵活 将应用和系统 容器化 不添加额外的操作系统 轻量 你会拥有足够的 操作系统 仅需添加或减小镜像即可 在一台服务器上可以布署100 1000个Containers容器 便宜 开源的 免费的 低成本的 37 Docker的缺点 主要体现在安全性Docker本身安全隔离是基于Linux内核的Namespace cgroup这些容器隔离和资源的组调度机制的 所有进程运行在同一个内核中 一旦有什么Bug被利用 突破这层隔离 就会危及到宿主机和其他容器还缺少对于防止一个容器获取过量的资源而影响到其他应用方面的保护其他Docker支持Unix Linux操作系统 不支持Windows或Mac 即使可以在其上安装 不过也是基于Linux虚拟机的 Docker还没有可视化界面 都是命令行指令 38 容器技术 虚拟技术 一种技术不会取代另一种技术 它们将共存并建立彼此之间相互的价值 39 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.