容器技术的由来

Docker 简介

容器技术的由来

在了解到Docker之前,先聊聊虚拟化技术的历史。在最早的时候,我们想要在线上部署一个应用。我们需要先购买服务器,然后安装操作系统及各种依赖环境,最后进行应用的部署。

这种方式有几个问题:

  1. 部署应用上线应用过程时间非常长
  2. 购买服务器的花费不菲
  3. 物理服务器的资源容易浪费
  4. 迁移和扩展比较困难

因为有上面的问题,后来出现的虚拟化技术。 虚拟化技术就是在操作系统上多加了一个虚拟化层(Hypervisor),可以将物理机的CPU、内存、硬盘等资源进行虚拟化,再通过虚拟化出来的空间上安装操作系统,这就是我们通常说的虚拟机。比如,我们可以将一台32核CPU、64G内存、500G磁盘的物理机进行虚拟化,可以创建8台4核CPU、8G内存的虚拟机。这些机器提供给不同的应用去部署,如此极大提供了资源利用率。常见的虚拟化技术如VMWare,KVM,VirtualBox等。

虚拟化技术的优点:

  • 提升IT效率
  • 降低运维成本
  • 更快地部署工作负责
  • 提高应用性能
  • 提高服务器可用性
  • 消除服务器梳理剧增情况和复杂性

虚拟化技术发展至今已经非常强大了,那为什么还需要容器化技术呢?

到如今的虚拟机解决了基础设计计算、网络、存储这几个方面的弹性,可以非常方便的扩展出应用需要的资源。但是仍存在两个问题:

  • 应用的扩展问题。拿双十一举例,应用在平常只需要10台机器,但是在双十一那天至少需要准备100台机器,就需要在非常短的时间快速完成的部署应用
  • 环境迁移。 应用开发过程是包含了开发-测试-预发布-线上,整个流程中设计到多套环境的发布,开发人员维护开发环境、测试人员维护测试环境、运维负责着预发布和线上环境,如何确保每套环境的一致性,这需要投入大量的人力成本,且经常出现因环境差异导致的问题

在云计算的时代,通常通过自动化脚本的方式去解决上面的问题,但是环境差异,导致脚本维护要投入额外的人力。亦或有的团队使用虚拟化镜像,但是镜像大且启动慢,没法满足时效性的要求。

于是,我们考虑是否存在一种更加轻量化的虚拟化技术,更容易迁移和扩展应用层业务。

集装箱 ——全球物流系统中一个非常重要的发明

在集装箱出现之前,货物是从工厂生产后装箱,然后一箱箱搬到卡车上,然后一箱箱卸下来,一箱箱送上火车,运送到码头附近的火车站,再一箱箱卸下来,拉上货轮,....

这个在集装箱出现之后有了变化,只需要在运输之前一次性封装好到集装箱里面,之后的集装箱直接放到卡车、火车、货轮上,而且集装箱是统一标准的,自然容易机械化,因此集装箱的革命,节省了大量的资源、物流成本大大降低。

正式借鉴了集装箱的解决方案,就有人提出了类似集装箱的方式封装应用以及它的运行环境,将应用和环境打包成一个轻量化、可移植、自包含的容器。

到现在,容器技术有非常多种,docker只是其中一种,但docker的流行度较高。而实现这种类似集装箱的封装技术,实际依赖两种技术,一种是Namespace,实现了在不同命名空间下的应用可以独立的网络、用户空间、进程号等;另一种是CGroup,实现对容器内cpu、内存等资源的隔离,避免单个容器出错,影响所有系统资源。

容器化技术的优势:

  • 更高效的系统资源利用率。

    相比虚拟化技术,不需要额外的hypervisor层,会有更高的性能和效率。单台高配物理机可以跑上千个docker容器。

  • 启动非常快,秒级时间

    这是由于直接运行于宿主机内核,需要启动完成的操作系统,因此可以做到秒级、甚至毫秒级的启动时间

  • 一致的运行环境

    容器的镜像封装应用和应用依赖的环境,确保了应用运行环境的一致性,避免了开发环境、测试环境、生产环境不一致的问题

  • 持续交付和部署

    一次创建和配置之后,可以在任意地方运行。测试人员可以将容器与持续集成系统结合,在pipeline中自动化的完成集成测试,同时运维人员可以通过持续部署系统对应用自动完成部署。

  • 更易于迁移

    如何你现在运行在哪里,都可以轻松迁移到物理机、虚拟机、公有云、私有云中,且不需要担心运行环境变化导致应用无法运行的问题

局限性:

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

推荐阅读更多精彩内容

  • 一、什么是Docker?   提到容器化技术,就必须提到docker,下面从历史来源、功能作用、技术本质几方面谈谈...
    小胡_鸭阅读 562评论 0 0
  • 简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本...
    廖马儿阅读 612评论 0 0
  • 1 Docker简介 1.1 什么是虚拟化 ​ 在计算机中,虚拟化(英语:Virtualization)是一种...
    吻中求胜阅读 298评论 0 1
  • 1.1 什么是虚拟化 ​ 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算...
    striveSmile阅读 659评论 0 50
  • 一、Docker简介 1、为什么要学Docker? 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作...
    Minority阅读 485评论 0 1