趣说“容器技术”,女朋友让我白话它的精彩故事!

云计算
女朋友仍旧在纠结“容器化与虚拟机的区别”,无奈,为了女朋友心中能够更畅快一些,我还是以“趣味”的方式,来说一说“容器技术”的故事。

面对一不小心就放大大大招的女朋友,我也只能每天战战兢兢、如履薄冰,表面逢迎,心里却诸多的不快。Anyway,当女朋友抛过来新的“难题”时,我也只能见招拆招、见题解题,毕竟方法总比困难多。

这不,在经历《为了搞懂“云原生”,女朋友竟敢让我悬梁刺股?!》之后,女朋友仍旧在纠结“容器化与虚拟机的区别”。无奈,为了女朋友心中能够更畅快一些,我还是以“趣味”的方式,来说一说“容器技术”的故事。

[[384796]]

docker的诞生与进化

大概在2010年,数名朝气蓬勃、意气风发的IT男,想要在云计算领域指点江山激昂文字,于是在美国旧金山成立了dotCloud公司,这家公司主要做LXC,这就是Linux container,emmm,翻译过来就是Linux容器虚拟技术,隶属于基于PaaS层的云计算技术。

Wait,dotCloud降生之后,一直默默耕耘,将自己的容器技术进行简化和标准化,并把它叫做“Docker”。与此同时,还一直念叨:我怎么还不出名,我怎么还不红,我怎么没引起关注。人红是非多,可我就想是非多一些。就这样,日复一日、年复一年,默默无闻的dotCloud终于过不下去了!!! 

趣说“容器技术”,女朋友让我白话它的精彩故事!

新事物的诞生必将经历“升级打怪”的过程,dotCloud公司穷得揭不开锅的时候,dotCloud公司的创始人之一、Docker之父Solomon Hykes决定Open Source,挥泪跟战友说:我们开源吧,只有开源才能让我们的孩子——Docker活下去。

这里插一句嘴,开源就是开放源代码,将保密的程序代码开放给所有人,大家一起参与,共享源代码和意见。

结果,不开则已,一开惊人,越来越多的IT攻城狮发现Docker的魅力,接踵而至,纷纷加入Docker开源社区。一时间,人气暴涨,版本迭代加快,此时的Docker不可一世,是戏曲界的当红花旦,更是业内公认的一哥!

不仅如此,Google、微软、Amazon、VMware对Docker鼎力支持,还专门开发构建一种开源容器管理系统,即后来的K8s。火了以后,dotCloud在想,公司的名称还没Docker出名,干脆把公司名字改成Docker Inc.。

来呀,找茬呀?容器技术与虚拟机的区别

最难的部分到了,到底什么是容器技术呢?

有效地将单个操作系统的资源划分到孤立的组中,以便更好地在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术。

顾名思义,容器是一个相对独立的运行环境,有点类似虚拟机,但不像虚拟机那样彻底,容器并没有把宿主机上的资源全部消耗。容器和虚拟机最主要的区别,便是虚拟化层的位置和操作系统资源的使用方式。 

趣说“容器技术”,女朋友让我白话它的精彩故事!

趣说“容器技术”,女朋友让我白话它的精彩故事!

其实,在容器技术之前,业界公认的当红花旦便是虚拟机,其典型的品牌代表是VMware和OpenStack两家公司。

虚拟机是在操作系统里面,装一款软件,通过这个软件虚拟出“子电脑”出来。在这个“子电脑”里,我们可以运行微信、QQ以及其他程序。同样,我们也可以模拟出更多“子电脑”,这些子电脑就是虚拟机了,虚拟之间相互隔离,互不影响。

But,容器技术本质上跟虚拟技术有一定的区别,虚拟机使用虚拟机管理程序(hypervisor)运行在物理设备上,从系统可计算资源分配虚拟机实例。换言之,虚拟机需要虚拟一个物理环境,紧接着构建一个完整的操作系统,供应用程序运行。

对于容器技术而言,直接将容器层安装在主机操作系统上,直接利用了宿主机的内核,它不需要虚拟整个操作系统,抽象层比虚拟机更少,启动时间更短、占用空间更小。

对,几秒钟就能启动!

对,占空间仅需MB级!

这就是容器技术!

双建客——深藏功与名的Docker

实际上,Docker本身并不是容器,而是创建容器的工具,是应用容器引擎。不过要想彻底弄懂Docker,我们先看Docker的双建客:“Build, Ship and Run”、“Build once,Run anywhere”

首先,“Build, Ship and Run”是“搭建、发送、运行”。

为了搞懂它,我先来举个栗子。 

[[384799]]

有一天,我独自来到孤岛上,我要在这里开启新的生活,于是我伐木、搬石头,辛苦过后,盖了一座并不完美房子。

住了一段时间之后,我想搬家了,传统意义的搬家是搬运除了房子以外的物件,比如床单被褥、日用电器等。

按照传统的想法,我到一个新地方,重新靠自己的双手、勤劳建筑属于自己的小巢。但这次,我彻底懒惰了,有没有一种魔法可以将我盖的房子重新复制一份,我直接可以拎包入住。

Docker告诉我,可以。它直接将我建好的房子做成“镜像”,我直接拎包入住。

这就是Docker的另一个双建客——“Build once,Run anywhere(搭建一次,到处能用)”。

拥有双建客的Docker如鱼得水、如虎添翼,简直轻量许多,方便许多。

直到有一天,人们发现要想将Docker用于具体业务上,其实并不容易,这就需要编排、管理、调度等各个方面的配合。在这个背景下,人们迫切需要一套管理系统,对Docker和容器进行高级的、灵活的管理。

这个时候,基于容器的集群管理平台——K8s(Kubernetes)出现了!

K8s的缔造,Google的不世之功!

早在十多年前,谷歌开始尝试容器,构建了一种集群管理系统——Borg,这是K8s的前身。这个集群管理系统可以运行成千上万个任务,大大提高了计算效率。在这个系统如火如荼发展的同时,谷歌认为运行虚拟机造成处理器利用率机器低下,于是将注意力放在容器系统Docker上,决定构建一种开源容器管理系统。 

趣说“容器技术”,女朋友让我白话它的精彩故事!

这个开源容器管理系统就是后来的Kubernetes,意思是舵手或领航员,简称K8s。

2014年Google宣布K8s开源;

2014年7月,微软、Red Hat、IBM、Docker、CoreOS、Mesosphere、Saltstack等公司,相继加入K8s。

这不,这就是“容器技术”!

女朋友:呵呵。

 

责任编辑:赵宁宁 来源: 比特网
相关推荐

2021-08-11 14:33:38

注解springAutowired

2020-01-02 09:14:23

Kubernetes内部容器

2013-12-19 09:42:34

程序员趣闻

2019-07-09 09:19:51

分布式事务App

2017-09-08 09:55:00

程序员IT

2020-11-08 14:34:31

小视频浏览器

2019-10-24 09:29:04

程序员程序员节女朋友

2019-11-19 11:29:50

Python数据标系

2019-08-28 16:22:30

Python数据微信

2015-08-26 10:17:29

程序员女朋友

2013-06-05 13:27:16

软件纠错

2023-04-12 08:45:21

ChatGPTPrompt技巧

2021-02-20 07:52:35

防猝死插件 IDEA

2021-02-02 11:59:15

插件开发工具

2020-04-21 11:45:04

技巧单一责任链开闭原则

2022-09-17 08:10:20

HSV饱和度图像

2011-09-08 13:56:03

51cto 51CTO

2014-09-19 10:42:32

2020-10-15 09:35:27

乱码UTF-8GBK

2019-07-01 09:31:04

拉黑复活检测器
点赞
收藏

51CTO技术栈公众号