docker技术介绍(-一)课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《docker技术介绍(-一)课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- docker 技术 介绍 课件
- 资源描述:
-
1、Docker 技术介绍(一)信息中心运行维护室毕宏刚一、Docker案例介绍二、Docker概念介绍三、Docker与虚拟机对比四、Docker应用场景五、Docker的实用性六、Docker基本原理七、Docker基本命令介绍八、Docker调度工具介绍九、Docker最佳实践一、Docker案例介绍眼见为实2048游戏软件的搭建ubuntuubuntu:/dockerfile$ sudo docker run -d -p 8016:80 two-eightF85f1d378c3aa3d50a4ae4643ef149f7d6650aa880cf4f3183733427c19333afubun
2、tuubuntu:/dockerfile$ sudo docker run -d -p 8017:80 two-eightubuntuubuntu:/dockerfile$ sudo docker run -d -p 8018:80 two-eightubuntuubuntu:/dockerfile$ sudo docker run -d -p 8019:80 two-eight操作命令实验结果二、Docker概念介绍什么是容器?什么是Docker? 随着整个云计算产业的演进,继IaaS和SaaS成为风口和出现爆发式增长后,接下来PaaS即将迎来风口。在2015年,多家云创业公司将产品定位转向
3、了场景化PaaS,诸如即时通讯PaaS云智能语音PaaS云物联网PaaS云存储PaaS云基于Docker的PaaS平台1960年之前的货运情况通过集装箱的运货方式(1960年之后)基于Docker的软件开发、运维Docker基于容器技术的轻量级虚拟化解决方案Docker是容器引擎,把Linux的cgroup、namespace等容器底层技术进行封装抽象,为用户提供了创建和管理容器的便捷界面(包括命令行和API)Docker 是一个开源项目,诞生于 2013 年初,基于 Google 公司推出的 Go 语言实现微软,红帽Linux,IBM,Oracle等主流IT厂商已经在自己的产品里增加对Doc
4、ker的支持。Google 每周启动超过20亿个容器进行业务服务,于上个世纪90年代已经开始大规模使用容器技术物理容器Docker内容无关性相同的集装箱可以容纳几乎任何类型的货物可以封装任何有效负载及其依赖项硬件无关性同一标准的容器允许把货物从船上运输到火车、卡车上,直到运输到仓库,整个过程无需整理货物或打开容器使用操作系统基元(例如:LXC)几乎可以在任何平台上运行虚拟机、裸机、OpenStack、公共IaaS等,并且无需修改内容隔离和交互无需担心铁压在香蕉上,容器可以堆积运输资源、网络和内容隔离,避免依赖Docker主要功能特征物理容器Docker自动化标准的接口使其易于实现自动化装卸、搬
5、运等运行、启动、停止、提交、搜索等都有标准的操作,非常适合devops:CI、CD、自动扩展、混合云高效无需打开或修改,可以在起始两地快速地移动/运输轻量级,可以进行快速移动和操作职责分离托运人担心盒子内部、承运人担心盒子外部开发人员担心代码,运营人员担心基础设施docker容器,软件运行的单元(例如tomcat、mysql软件)阿里云平台百度云平台容器跨云平台迁移容器介绍Container(容器)技术其实早在多年前就出现了。从2005年的Solaris Containers到2008年LXC 0.1版本的推出。再到后来的Google推出开源的容器管理工具lmctfy,也将近经历了10年的发展
6、。它仅仅只是一个虚拟化的技术,相比KVM,XEM没有太多的优势。直到2013年,Docker的出现。才代表着容器技术一个新的时代的来临。从技术角度看,传统容器只解决了容器执行(run)问题,而Docker定义了一套容器构建(build)分发(ship)执行(run)容器Container镜像images仓库Repositories执行构建分发ClientDocker_host1Registry(仓库)DockerrunDockerpushDockerpullDockerengine容器镜像DockerbuildDocker_host2Dockerengine镜像容器三、Docker与虚拟机对比
7、虚拟机和Docker有什么区别?作为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具有显著优势:Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式要快得多。Docker容器对系统资源需求很少,一台主机上可以同时运行数千个Docker容器。Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。Docker-轻量级虚拟化容器技术Docker通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率。Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,保证应用性能的同时,尽量减小系统开
8、销。传统虚拟机方式运行N个不同的应用就要启动N个虚拟机(每个虚拟机需要单独分配独占的内存、磁盘等资源),而Docker只需要启动N个隔离的容器,并将应用放到容器内即可。Docker-轻量级虚拟化容器技术Docker虚拟机启动速度秒级分钟级复杂度基于内核的namespace技术,对现有基础设施的侵入较少部署复杂度较高,并且很多基础设施不兼容执行性能在内核中实现,所以性能几乎与原生一致对比内核级实现,性能较差可控性依赖简单,与进程无本质区别依赖复杂,并且存在跨部门问题体积与业务代码发布版本大小相当MB级别GB级别并发性可以启动几百几千个容器最多几十个虚拟机资源利用率高低特点对比以下的数据均是在IB
9、M x3650 M4服务器测得,其主要的硬件参数是: (1)2颗英特尔xeon E5-2655 处理器,主频2.4-3.0 GHz。每颗处理器有8个核,因此总共有16个核。 (2)256 GB RAM. 在测试中是通过运算Linpack程序来获得计算能力数据的。结果如下图所示:性能对比 1.资源隔离方面不如虚拟机,docker是利用cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。 2.安全性问题。docker目前并不能分辨具体执行指令的用户,只要一个用户拥有执行docker的权限,那么他就可以对docker的容器进行所有操作,不管该容器是否是由该用户创建
10、。比如A和B都拥有执行docker的权限,由于docker的server端并不会具体判断docker client是由哪个用户发起的,A可以删除B创建的容器,存在一定的安全风险。 3.docker目前还在版本的快速更新中,细节功能调整比较大。一些核心模块依赖于高版本内核,存在版本兼容问题Docker相对虚拟机不足之处有些激进的言论声称Docker将是现有虚拟机技术的终结者,个人觉得此言论有些浮夸了。Docker是面向应用的,其终极目标是构建PAAS平台,而现有虚拟机主要目的是提供一个灵活的计算资源池,是面向架构的,其终极目标是构建一个IAAS,或者是SDDC(Software Defined
11、Data Center软件定义的数据中心)。并且,两者相辅相成。Docker的老东家dotCloud的PAAS服务便基于Amazon的AWS服务,因此,虚拟机是Docker的土壤,而Docker则向用户展现了业务。结论四、Docker应用场景Docker怎么用?应用场景:1.对应用进行自动打包和部署2.创建轻量、私有的PAAS环境3.自动化测试和持续整合与部署4.部署和扩展Web应用、数据库和后端服务对应用进行自动打包和部署(Automating the packaging and deployment of applications)Docker对于应用依赖封装完整,同一镜像可重复的在测试、
12、集成、生产等环境部署,做到“一次构建,处处运行”,适用于持续集成、持续部署流程。 创建轻量、私有的PAAS环境(Creation of lightweight, private PAAS environments) 自动化测试和持续整合与部署(Automated testing and continuous integration/deployment )搭建开发环境安装web容器安装数据库分配网络开发测试编码测试安装web容器安装数据库分配网络上线生产搭建开发环境安装web容器安装数据库分配网络SAP测试环境安装SAP系统测试安装SAP系统生产SAP生产环境SAP开发环境安装SAP系统开发共
13、享NFS文件系统版本管理传输传输传统型软件开发、测试、上线过程1、资源利用效率低2、单物理机多应用无法有效隔离(进程空间,cpu资源,磁盘)3、运维部署不便4、测试、版本管理复杂5、迁移成本高6、传统虚拟机,空间占用大,启动慢,管理复杂传统型软件开发、测试、上线过程不足之处Docker仓库群开发(本地)获取镜像开发测试提交仓库测试机(公用)获取镜像验证测试生产机集群获取镜像部署备份以Docker为单位的开发部署流程设计以docker为单位的开发测试部署流程,简化了环境搭建的步骤,提高了资源利用效率和开发测试部署的速度,降低了迁移的成本更快速的交付和部署。使用Docker,开发人员可以使用镜像来
14、快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用相同环境来部署代码。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试、部署的时间。并且,各个步骤都有明确的配置和操作,整个过程全程可见,使团队更容易理解应用的创建和工作过程。 部署和扩展Web应用、数据库和后端服务(Deploying and scaling web apps, databases and backend services)案例:微博红包羊年春晚Docker集群成功的为1.02亿用户刷微博、抢红包提供了可靠的服务。微博平台Docker集群的规模情况:Docker集群规模达到1000+节点 Q
15、PS(每秒查询率)峰值达到800K/s 4个9的服务SLA达到150ms 共覆盖23个核心服务 春晚共调度近300节点完成动态扩容 由此可见,Docker的目的是让用户用简单的“集装箱”方式,快速的部署大量的、标准化的应用运行环境,所以,只要是这类的需求,Docker都比较适合。结论五、Docker的实用性成熟度、适用性Docker能在企业里面用么?1、稳定性2、可管理性3、业务高可用和可恢复能力从稳定性上看,Docker在2015年6月10日发布了1.0版本,把该版本称为一个“里程碑”,并声称“1.0的发布表明在质量、功能完整、后台兼容和 API 稳定性方面已经提升了一个级别,达到企业 IT
16、 标准”。但在此之前,dotCloud一直警告用户“不要在生产环境中运行 Docker ”,在RHEL 7中,Docker的版本为0.11.1,这是1.0发布前的RC版本,虽然红帽会将之后的Docker更新和补丁修复更新到0.11版本中,目前Docker的版本是1.9版本。但是,企业客户在使用这样一个较新的软件版本时,仍需承担不小的稳定性风险的。而在很多企业客户的软件版本选择规范上,都有“需采用已经发布超过半年的稳定版本”的要求。 稳定性可管理性方面,企业的IT运维人员需要所使用的软件具有很好的可视化管理能力,并且具有可行的监控手段。Docker目前的集中化管理主要有DockerUI 、Doc
17、kland、Shipyard 等Docker的主要作用是应用的发布和运行,但是,看起来Shipyard在Application的管理上还很粗糙,并且,整个管理思路并不是以应用为中心的,这可能会给企业在集中管理Docker的时候,带来了一定的“麻烦”。而监控的主要目的是快速了解系统、运行的建康状况,对风险状态进行告警,这方面,Docker较为缺乏,还需要企业针对相关环境进行定制化的监控实现。 可管理性在企业中任何一个业务都是需要高度可用的,因此,企业业务平台都要考虑三个事情:本地高可用、数据备份、远程灾难恢复。当然,在使用Docker的时候,也许需要从另一个角度考虑问题,在Docker的应用场景
18、中,提倡“无状态”应用,也就是说,业务数据仅在数据层进行存储,而业务层不关注任何数据。业务层的高可用就可以通过快速的重新部署来实现,数据层仍然采用传统模式,或者借助于传统的方式实现高可用和可恢复性。但这需要时间进行方案摸索和验证,其可行性和可靠性需要时间来去证明。业务高可用和可恢复性综上所述,Docker到大规模的企业环境应用还有不少的路要走,但是,它所带来的便利性仍然不可小视,这将是革命性的改变,“不足”换种说法就是“机会”,这需要大量了解企业业务的合作伙伴围绕Docker推出相应的解决方案,而Docker的开放性给这种努力带来了极大的便利性。而对于企业来说,Docker对开发、测试团队带来
19、的便利性非常巨大,而开发、测试环境对之上所讨论到的缺点并不关注,所以,在开发、测试团队大胆的推广、使用Docker无疑能够获得极大的收益。六、Docker基本原理基本概念及基本原理基本概念(三大核心)容器Container镜像images仓库RepositoriesdockerHub(publicregistry)Docker-registry(privateregistry)执行构建分发Docker 的镜像类似虚拟机的模板,但是更轻量例如:一个镜像可以包含一个完整的 Linux 操作系统环境,里面仅安装了 Tomcat或用户需要的其它应用程序镜像可以用来创建容器镜像等同于从模板中创建虚拟机容
20、器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器镜像 #0Linux +tomcat容器 #1Linux + tomcat 容器 #2Linux + tomcat 容器 #3Linux + tomcat 从同一个镜像启动多个容器容器端口映射主机镜像名称:image:01镜像ID:e7fig83jgf8Linux+tomcat镜像名称:image:02镜像ID:v8fkfg8gkdLinux+oracle容器名称:my
21、app1容器ID:44adg8d9mdfport:8080port:80容器名称:myapp_db容器ID:35gif8jr9fgnhkfport:1521port:1521容器名称:myapp2容器ID:9gjd8jd9gkdh9gport:8081port:80仓库是集中存放镜像文件的场所仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签仓库分为公开仓库(Public)和私有仓库(Private)两种形式push 镜像到仓库,从仓库pull下镜像pushpull主机主机仓库及仓库注册服务器pid - 进程net - 网络ipc - 消息mnt - 文件系统
展开阅读全文