容器前世今生 | Docker 更新协议,禁止被列入“实体清单”企业使用

2021-01-07 11:53:21 阅读量:


8 月 13 日,Docker 更新网站服务协议,禁止被列入美国实体清单组织和个人使用,Docker服务受限。

 
美国实体清单公布以来,对国内科技圈的影响越来越大。
 
目前中国 IT 公司被列入贸易管制“实体名单”的企业包括:华为、商汤、依图、旷视、海康威视、大华、科大讯飞、美亚柏科、颐信科技、奇虎360、烽火科技集团、东方网力、达闼科技、云从科技、中科曙光、海光等。
 
6月的时候,受实体名单影响,哈工大、哈工程被禁用工科神器MATLAB,引起社会的极大关注。相关人员在询问了 MathWorks 美国客服之后,有人获得了这样的回复:无法恢复服务
 
无独有偶,继而,软件容器平台 Docker 的服务也受到了影响。
 
这次的 Docker 受限程度,还在讨论中。之后会怎么发展,我们还要拭目以待。
 
在等待事情发展的时候,我们不妨来看下容器具体是怎么回事:

容器,泛指容纳其他物品的工具。
 
一酒杯,承载着琼浆玉露,点燃数不尽的江湖热血;
 
一茶壶,沉浮了经年往事,氤氲如梦的人生;
 
千百年前,容器二字,纳尽了世间百物,千百年后,同为容器,却已经踏足了虚拟化世界,搅动一方风云。
 
\

随着信息时代的到来,数据喷井式爆发,硬件性能日新月异,可利用率却难以提高,安全性,时效性,可靠性,稳定性如同磐石般压在技术人员的心头。
 
或许,是容器的理念挑动了工程师的神经,致力于建设虚拟世界的他们,将目光放到容器身上,当下软件和系统的兼容问题牵动每一个消费方,而身为研发人员,亦不知软件贸然运行会对系统造成何等伤害,如果能够建设一个类似于容器一般的器具,与现有环境隔离,但又能拥有软件运行的环境,把不稳定的数据放到其中测试的话...(仿佛发现不得了的东西呢)
 
 \
 
庆幸的是,我们有虚拟机得以利用,既然软件的安全和稳定无法预知,就把他放置虚拟机运行,哪怕该软件闹个天翻地覆,亦不会影响的真实的主机。
 
毕竟,虚拟机之间乃至虚拟机和宿主机之间,存在物理层次的隔离,如同上图,病毒肆虐,漏洞百出,损坏的也只是一个虚机罢了,这样的虚机,分分钟创建,不值得心疼。
 
时过境迁,把虚拟机当器皿来容纳一个测试程序太浪费了,君若不信,请看:虚拟机如同真实的电脑,打开任务管理器,发现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等等,咱们点到即止。
 
世间没有不散的宴席,希望这一篇文章,能给你揭开容器的一角,得以窥探另一个世界,如果可以,愿你在启程之时,不再迷茫;待你在转身过后,功名渐成。

******
 
精品课程免费试听:华为认证云计算、大数据、人工智能、云服务、数通、网络安全、存储、数据中心、物联网、5G、高斯数据库、智能计算、鲲鹏应用开发等精品课程,包含华为认证HCIE、HCIP、HCIA三个等级的认证培训课程,总有一门适合你!