纯干货:21天带你玩转容器

纯干货:21天带你玩转容器
可能有些人已经使用过容器,但考虑知识体系的完整性,我们还是从最基本的容器知识开始带大家进入容器的世界。
首先介绍一下什么是容器?Docker是一种轻量级的操作系统虚拟化解决方案,它想达到一次构建到处运行,类似于Java虚拟机的效果,它最初诞生于2013年,是基于go语言的实现,最初是由dotCloud公司的内部一个业余项目,后来项目开源加入了Linux基金会,然后现在代码在github上进行维护,有兴趣的同学可以下载下来读源码,这样会对于大家对Docker的原理的理解会有很大的帮助。Docker的基础是基于Linux容器技术,在Linux容器技术的基础上,Docker进行了进一步的封装,让大家不去关心容器的管理,使得操作更加便捷。用户操作Docker容器,就像操作一个快速轻量级的虚拟机那样简单。

从结构上来看,容器和虚拟机还是有很大不同的。左图的虚拟机的Guest层,还有Hypervisor层在Docker上已经被Docker Engine层所取代,在这里我们需要知道,Guest OS 是虚拟机安装的操作系统,是一个完整的系统内核,另外Hypervisor可以理解为硬件虚拟化平台,它在后Host OS以内核驱动的形式存在。虚拟机实现资源的隔离的方式是利用独立的Guest OS,以及利用Hypervisor虚拟化CPU、内存、IO等设备来实现的,对于虚拟机实现资源和环境隔离的方案,Docker显然简单很多。然后Docker并没有和虚拟机一样利用一个独立的Guest OS执行环境的隔离,它利用的是目前当前Linux内核本身支持的容器方式,实现了资源和环境的隔离,简单来说,Docker就是利用Namespace 实现了系统环境的隔离,利用了cgroup实现了资源的限制,利用镜像实例实现跟环境的隔离。由此可见,Docker有着比虚拟机更少的抽象层。由于Docker不需要Hypervisor实现硬件资源的虚拟化,所以运行在Docker容器上的程序,直接使用的都是实际物理机的硬件资源。因此在cpu、内存、利用率上,Docker将会在效率上具有更大的优势。此外,Docker直接利用虚拟机机的系统内核,避免了虚拟机启动时所需要的系统引导时间和操作系统运行的资源消耗,利用Docker能够在几秒钟之内启动大量的容器,是虚拟机无法办到的。快速启动低资源消耗的优点,使Docker在弹性云平台自动运维系统方面具有很好的应用场景。与虚拟机相比,Docker在以下几个方面具有很大的优势,它能够快速的交付和部署,Docker在整个开发周期都可以完美辅助你实现快速交付,Docker允许开发者本地应用,直接进入到可持续的开发流程中。例如开发者可以使用一个标准镜像构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码,Docker可以快速创建容器快速迭代应用程序,整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。此外,容器的启动时间是秒级的,大量节约开发、测试、部署的时间。还有一个非常关键的点,就是Docker能够高效地部署和扩容,Docker容器几乎可以在任意平台上运行,包括虚拟机、物理机、公有云、私有云、个人电脑、服务器等,这种兼容性,可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。Docker的兼容性和轻量性的特性可以轻松的实现负载的动态管理,你可以快速扩容或方便的下线你的应用和服务,这种速度趋近于实时!此外Docker还具有更高的资源利用率,一台主机上可以运行数千个Docker容器,容器除了运行其应用之外,基本不消耗额外的系统资源,使得应用性能高,系统开销小,而传统的虚拟机方式则需要运行不同的应用,耗费大量的资源,此外Docker还可以有更简单的管理使用Docker只需要小小的修改就可以替代以往大量的更新工作,所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理!
容器基础知识已掌握,想要学习得更深入?华为云DevCloud &云容器服务联合重磅出品——21天转型容器实战营!依托华为云云容器服务,带领开发者学习和体验Docker, kubernetes, Istio等大热技术!汇聚华为云容器技术尖端专家,结合CKA认证精编21天课程,理论和实践双管齐下,助力开发者打通容器任督二脉,挑战21天,拿下CKA! 11.20-12.3限时入营,摆好学习姿势,12.4-12.24学习实践,闯关打卡,21天见证进步。现在进入华为云学院( https://edu.huaweicloud.com/
报名学习吧。

原文地址:http://blog.51cto.com/13988201/2320124

时间: 2024-10-09 21:49:43

纯干货:21天带你玩转容器的相关文章

IT技术学习指导之Linux系统入门的4个阶段(纯干货带图)

IT技术学习指导之Linux系统入门的4个阶段(纯干货带图) 全世界60%的人都在使用Linux.几乎没有人没有受到Linux系统的"恩惠",我们享受的大量服务(包括网页服务.聊天服务等)背后几乎都是由Linux系统支撑的服务器,超过20亿人每天都随身携带基于Linux内核开发的 Android手机出门,Linux也广泛应用在嵌入式系统上.因此学习Linux系统变得尤为重要,对于普通用户而言,平面式的学习Linux系统的基本使用已经足够,但对于开发者或者运维人员而言,深入学习Linux

iOS开发——高级UI&带你玩转UITableView

带你玩装UITableView 在实际iOS开发中UITableView是使用最多,也是最重要的一个控件,如果你不会用它,那别说什么大神了,菜鸟都不如. 其实关于UItableView事非常简单的,实际开发中用起来却没有那么简单就是因为他结合MVC使用,涉及到了模型数据的读取,自定义View,功能的拓展和更好的解藕,下面就带你玩一遍: UITableView的两种样式 UITableViewStylePlain UITableViewStyleGroupeds accessoryType UIT

纯干货:微软漏洞中国第一人黄正——如何用正确姿势挖掘浏览器漏洞(附完整 PPT)

导语:黄正,百度安全实验室 X-Team 掌门人.他在这里分享了诸多漏洞挖掘的干货,目标成为大神黑客的你不能错过. 浏览器就像一扇窗,通过这扇窗,黑客可以攻入电脑的心脏. 就像情场高手,通过眼睛,融化一个人的心灵. 黄正,百度安全实验室 X-Team 掌门人.2016年,这个信仰"技术可以改变世界"的低调黑客大牛以一己之力挖掘无数浏览器漏洞,创下了排名微软 MSRC 2016 年度黑客贡献榜中国区第一(世界第八)的壮举. 从一个安全开发工程师华丽转身,成为安全研究员,黄正最终站在了中国

B - 瑶瑶带你玩激光坦克

B - 瑶瑶带你玩激光坦克 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 256000/128000KB (Java/Others) Submit Status Problem Description 有一款名为激光坦克的游戏,游戏规则是用一个坦克发出激光来达到一些目的,激光可以通过一些镜子反射. 机智的瑶瑶为了显示自己的智商高于常人,把这个游戏改造了一下,变成了用激光攻击敌人的游戏. 瑶瑶想知道射一次激光最多可以攻击到多少个敌人.

360手机助手内部资料曝光,63张PPT纯干货

360手机助手内部资料曝光,63张PPT纯干货 日前,国内最大的安卓应用商店360手机助手发布了<2016年手机软件行业趋势绿皮书>,这份绿皮书对2015年以来移动互联网的趋势做了总结,展望了2016年的发展方向.从这份绿皮书所反映的现状来看,当前,国内移动互联网或来到了一个十字路口. 这份报告的每一页PPT都是干货,对于移动互联网从业者.政府决策层来说绝对不能错过. 1.2015年移动端用户增速放缓并渐趋饱和,市场竞争迈入零和时代 随着中国人口结构的变化,人口红利出现下降,影响至移动智能终端

2016新站SEO方案(纯干货)

在本月初新做了一个网站,分享一下最新的网站seo方案(纯干货). 1.域名选择:虽然百度声称不会歧视非主流的域名(比如.win..kim等),但是也称方便用户记忆的如.com..net等会更受引擎喜爱.百度除外的其他引擎都表示与网站主题相关的域名将会得到加权(比如网站是恋家房产,那么域名最好就是ljfc或是lianjiafangchan). 还有就是购买域名之前查一下有没有黑底子,如果有最好放弃. 2.空间选择:资金宽裕的可以直接上云服.独服.资金有限的朋友可以选择虚拟主机,最好有独立ip(这个

acdream 瑶瑶带你玩激光坦克 (模拟)

瑶瑶带你玩激光坦克 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 256000/128000KB (Java/Others) Submit Status Problem Description 有一款名为激光坦克的游戏,游戏规则是用一个坦克发出激光来达到一些目的,激光可以通过一些镜子反射. 机智的瑶瑶为了显示自己的智商高于常人,把这个游戏改造了一下,变成了用激光攻击敌人的游戏. 瑶瑶想知道射一次激光最多可以攻击到多少个敌人. PS:

带你玩转Kubernetes

导读 Kubernetes是著名的容器管理系统,是一个有这很多贡献者的开源大项目,它作为一个不挑食的容器管理框架,可以无处不在.这两天接触K8s,带你玩转K8s,这个教程可以大致让你知道运行更改源码,而且从头测试本地Kubernetes平台集群. Kubernetes是个有很多贡献者的开源大项目,理论上它作为一个不挑食的容器管理框架,可以无处不在.但可惜的是,无论实际编写还是贡献测试代码,引导kubernetes server都不太容易.里边的一些文件对于我来说有些乱,不是挂了的就是过时的.源文

带你玩转Visual Studio——带你高效管理代码

上一篇文章带你玩转Visual Studio--带你高效开发通过对VAssistX优秀插件的讲解,让我们掌握了快速开发C++代码的技能.然而大部分的程序都不是一个人的开发的,是由一个团队的多个人一起开发的,大型的系统还可能由多个不同的团队分包进行开发.多人进行协作开发时,代码的管理就显得及为重要,需要借助代码管理工具的辅助,这种工具又称为版本控制系统. 目前主流的版本控制系统有: CVS:是一个用于代码版本控制的自由软件,它是一个比较早出现的工具,由于它有很多自身的缺陷,现在几乎被SVN所取代了