1、Docker-前期概要

一、虚拟机

虚拟机思想就是可以把一台计算机分隔成若干台机器使用
所谓虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、并可以运行在一个完全隔离环境中的完整计算机系统。虚拟机就是相对于传统计算机而言的一个计算机概念,一个非实体的计算机,但具有所有传统计算机的功能。
虚拟机系统可以通过生成现有操作系统的全新虚拟镜像(比如iso)对于windows操作系统而言,它具有真实windows系统完全一样的功能。对于linux/unix系统,也是如此,一个linux(unix系统)被分隔为多个相对独立的小系统(麻雀虽小却五脏俱全)。进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,甚至拥有自己的独立桌面互动操作,却不会对真正的宿主系统产生任何影响 ,更为方便的是这种系统具有能够在宿主系统与虚拟镜像之间灵活切换。虚拟系统和传统的虚拟机(Parallels DesktopVmwareVirtualBoxVirtual pc、kvm)存在不同。
具体就在于:虚拟系统不会大量降低电脑的性能,启动虚拟系统不需要像启动
windows/linux系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统(比如在笔者的宿主ubuntu下用virtualbox来运行windowsx也不是没有的,虚拟机计算需要多了一个虚拟机与宿主机模拟底层之间的交换层,所以在应用程序**运行速度上比虚拟系统慢得多。但是值得相信的是,现在的硬件越来越快,应该可以不考虑这占损失就好了,尤其还会有未来的量子计算机产生。

二、容器技术

一种比传统虚拟机更优秀的计算资源利用管理技术
有了虚拟机vm的长期网红,容器技术很快就被程序高手们挖掘出来。Cgroup被引入linux系统的内核体系,随之基于cgroup的应用就多了起来!也许很多朋友一开始只希望用这个cgroup来实行操作系统层面资源隔离,从而形成linux系统下多用户使用中的资源安全。可是GO语言出来之后,喜欢尝鲜的程序员,用GO写出了docker这大型工具。GO的新生面孔与Docker强大未来前途,一下子把高密度运算带到了一个新高度。
虚拟化技术的长期使用,已经成为一种被大家广泛认可的服务器资源共享方式,它可以在按需构建操作系统实例的过程当中为系统管理员提供极大的灵活性。这样的特点为满足了投资者缩减成本的需求,也满足了管理人员的希望。但这种是基于
虚拟化技术的。hypervisor作为一个中间件充当一种运行在物理服务器和操作系统之间的中间软件层,其根本任务就在于允许多个操作系统和应用程序共享一套基础物理硬件(比如硬盘、内存、cpu、通讯总线等),它可以协调计算任务访问服务器上的所有物理设备和虚拟机,因此有时间人们又叫它是虚拟机监视(控)器(Virtual Machine Monitor)。Hypervisor是所有虚拟化技术的核心,非中断地支持多工作、多负载迁移的能力是Hypervisor的基本功能。每当服务器启动执行Hypervisor这个进程时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。
hypervisor仍然存在一些性能和资源使用效率方面的小问题,在大运算量有时候就成了一种瓶颈与制约,因此基于容器(Container)的新型虚拟化技术成为真实的新晋网红。这个网红代表就是Docker。
目前Docker的使用已经非常普遍,特别在一线的互联网公司。使用Docker技术的优势可以帮助企业快速地扩展服务,从而实现弹性部署计算业务的能力。在云服务理念兴起之后,Docker的使用场景和范围进一步得到发展,如今微服务架构又流行起来,微服务+Docker再次成为完美组合,快速交付、快速布署、简捷运维部署一股脑儿就落地了。
名词解释
cgroups,其名称源自控制组群(control groups)的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。
这个项目最早是由Google的工程师(主要是Paul Menage和Rohit Seth)在2006年发起,最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词有许多不同的意义,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中去。自那以后,又添加了很多功能。
Hypervisor, 一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor )虚拟机监控器
细说Docker。
Docker 是世界领先的软件容器平台。开发人员利用 Docker 消除了协作编码时“只在我的机器上可正常工作”的问题。对于运维人员而言,利用 Docker 可以在隔离容器并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付方式,以高速度、高安全性、高可靠性地为 Linux 和 Windows Server 应用发布新功能,跨平台一气通吃。
Docker 属于 Linux 容器的一种封装,成套地提供了简单易用的容器使用接口。它是事实上目前最流行的 Linux 容器方案。Docker 将应用程序以及该程序运行的依赖计算环境,打包在了一个镜像文件之中。只要运行这个镜像文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就如同在真实的物理机上运行一样。
另外的优势就是,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。利用容器接口还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样方便快捷,当然前提是你必须学好docker的所有知识。

三、为什么要优先使用Docker,而不是虚拟机呢

1、在性能上讲

容器除了运行其中应用外,基本不消耗额外的系统资源。就连虚拟机中 hypervisor 支持也节省了。因此使得应用的性能进一步提高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个安全隔离的应用就可以了。

2、更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器轻量级的,快速是原生特性。容器的启动时间秒级水平,大量地节约了开发、测试、部署时间。

3、更高效的虚拟化

虚拟机基于硬件层面实现虚拟化,需要额外的虚拟机管理应用和虚拟操作系统层
Docker容器是在操作系统层面上实现虚拟化直接复制宿主主机的操作系统,更轻量级,更高效

4、更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等等。 这种兼容性可以让用户“一次建设跑遍全天下成为事实”,最终简的方法就是把一个应用程序从一个平台直接复制迁移到另外一处即可 。

5、维护更简单

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

四、Docker 与VM的效率。

VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中。虽然Docker目前还不够完善,比如隔离效果不如VM,还需要共享宿主机操作系统的一些基础库等(这可能与还不够完善GO-lang有关);网络配置功能相对简单,主要以桥接方式为主。

image

docker容器与VM间的不同

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
相对传统的虚拟化方式,作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式具有众多优势。Docker 容器的启动可以在秒级实现;Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

对比传统虚拟机总结

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容