容器简介及其历程发展

容器伊始

有一种器物,存水储物,只为生活,曾风华了一个个王朝的故事,也曾定格一幕幕凡尘的荣辱,他便是容器,伴随着人类走过万年的岁月,装点过流水的光阴。
在这里插入图片描述

容器:泛指容纳其他物品的工具,一酒杯,承载着琼浆玉露,点燃数不尽的江湖热血;一茶壶,沉浮了经年往事,氤氲如梦的人生。千百年前,容器二字,纳尽了世间百物,千百年后,同为容器,却已经踏足了虚拟化世界,搅动一方风云。
在这里插入图片描述
随着信息时代的到来,数据喷井式爆发,硬件性能日新月异,可利用率却难以提高,安全性,时效性,可靠性,稳定性如同磐石般压在技术人员的心头。或许,是容器的理念挑动了工程师的神经,致力于建设虚拟世界的他们,将目光放到容器身上,当下软件和系统的兼容问题牵动每一个消费方,而身为研发人员,亦不知软件贸然运行会对系统造成何等伤害,如果能够建设一个类似于容器一般的器具,与现有环境隔离,但又能拥有软件运行的环境,把不稳定的数据放到其中测试的话…………
庆幸的是,我们有虚拟机得以利用,既然软件的安全和稳定无法预知,就把他放置虚拟机运行,哪怕该软件闹个天翻地覆,亦不会影响的真实的主机,毕竟,虚拟机之间乃至虚拟机和宿主机之间,存在物理层次的隔离,如同上图,病毒肆虐,漏洞百出,损坏的也只是一个虚机罢了,这样的虚机,分分钟创建,不值得心疼。
时过境迁,把虚拟机当器皿来容纳一个测试程序太浪费了,君若不信,请看:虚拟机如同真实的电脑,打开任务管理器,发现CPU、内存的利用率差强人意,这不是另一种资源的浪费吗?

在这里插入图片描述
既然如此,我们把沙箱做小一些,不需要虚拟机那些生硬的虚拟硬件,尽可能精简,把重心放到应用上,这就是容器的理念,一个容器以一个应用为中心展开,拥有的,仅仅只是这一个应用的运行环境;实现的,是进程之间的隔离;成就的,是应用级别的虚拟化,并无其他,既然有了想法,缺少的就是行动了。

容器历程

容器技术最早出现于Chroot,那时候的容器技术,被称为监狱(Jail),如此可以想象,把进程放到Jail中运行,无论发生什么错误,都不会影响到系统其他进程的运行
在这里插入图片描述
2000年,Unix对Chroot Jail进行安全加固,形成FreeBSD Jail,然后在2001年时,移植到了Linux上,Jail在Linux上实现被称之为Vserver,他拥有Chroot机制,并采用namespaces进行资源隔离,实现了UTS隔离(主机名、IP地址等信息)、文件系统隔离、PID进程隔离。至此,容器在Linux上打开了新的篇章。
在这里插入图片描述
容器技术从2000年后不断推陈出新,牵引IT界的眼球,这个时代正所谓百花齐放,不外如是,2004年,Oracle公司研发了Solaris Container,由系统资源控制和区域的概念来组成边界,以此达成隔离的效果(说白了就是基于Vserver原有的基础添加了区域的概念),相继2005年,Unix7中研发了OpenVZ,至今,还有很多托管公司使用他来隔离和销售VPS,容器共享相同的体系结构和内核版本,但是需要在系统内核打相应的补丁,谷歌似乎也不甘寂寞,研发了一种CGroups的机制,可以隔离一系列进程的资源使用,被集成进了Linux内核,至此三足鼎立。

在这里插入图片描述
在2008年的时候,Linux发现了LXC Linux容器,和OpenVZ,Solaris Containers类似,使用的是谷歌的CGroups机制,不同的是多了一个LXC打包可用化技术,方便我们管理容器生命周期。
时至2013年,Linux以LXC为底层,把Linux沙盒化,使得进程之间隔离,在此基础之上,研发了Docker,在之后,谷歌于Docker合作实现Libcontainer,将核心概念和抽象移植到libcontainer,使得谷歌称为容器化行业的领导者,容器的魅力使得谷歌把一切都放置容器运行,据统计,谷歌每周超过20亿个容器在运行,正是这无数的容器诞生与销毁,才得以支撑了当下谷歌信息的更迭与软件的访问。

在这里插入图片描述
容器,轻量级虚拟化技术,他的特性注定的他的一生是短暂的,从他诞生启动的那一刻起,从他执行父进程的那一刻起,就早已经注定了要走的路,要干的事,以及最后的结局,正如他容量很小,小到默默无闻,小到无声无息,最后泯然于世间,连一朵浪花都无从激起,起伏有定,更迭有常,这就是容器……

容器认知

容器技术具备集装箱的韵味,试想一下:巴黎河畔清风拂面,集装箱堆叠整齐划一,于阳光之上散发金属光泽,集装箱内部的货物静候船只把他送往彼岸。
如果能够get到这一点,那么你离容器的概念就不远了,镜像,如同集装箱,拥有统一的格式,内部的货物就是服务,包含容器内部运行的进程以及该进程的运行环境,船只相当于容器,水路相当于网络,当我们把一个服务运行好后,封装成镜像,内部数据不会丢失,保存在容器的仓库中,通过网络形式传输到另一个主机后,服务仍然可用,而不用再安装一套操作系统和依赖环境

在这里插入图片描述
容器的特点其实我们拿跟它跟硬件抽象层虚拟化hypervisor技术对比就清楚了,我们之前也提到过,传统的虚拟化(虚拟机)技术,创建环境和部署应用都很麻烦,而且应用的移植性也很繁琐,比如你要把vmware里的虚拟机迁移到KVM里就很繁琐(需要做镜像格式的转换)。那么有了容器技术就简单了,总结下容器技术主要有以下特点:
极其轻量:只打包了必要的Bin/Lib;
秒级部署:根据镜像的不同,容器的部署大概在毫秒与秒之间(比虚拟机强很多);
易于移植:一次构建,随处部署;
弹性伸缩:Kubernetes、Swam、Mesos这类开源、方便、好使的容器管理平台有着非常强大的弹性管理能力。

在这里阿斯顿动分
当然,大家听闻最多的就是Docker,总觉得Docker就是容器,其实不然,Docker是一个开源的应用容器引擎,他基于LXC内核虚拟化技术实现,提供了一系列更强的功能,像镜像,Dockerfile等等,当然就不超展开了,咱们点到即止。

世间没有不散的宴席,希望这一篇文章,能给你揭开容器的一角,得以窥探另一个世界,如果可以,愿你在启程之时,不再迷茫;待你在转身过后,功名渐成。
该图片如若侵权画师请联系作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值