关于容器,你应该提的13个问题及应该知道的答案

 

 当从一个计算环境转移到另一个计算环境时,容器是如何使软件可靠运行的问题的解决方案。以下是关于这个你需要了解的流行技术。

Docker在2013年一炮而红,自那以后持续引起IT界的兴奋。

Docker提供的应用程序容器技术承诺将像几年前的虚拟化技术一样改变IT运营的方式。

以下是与该技术相关的13个最常见问题的答案。

什么是容器以及你为什么需要它们?

当从一个计算环境转移到另一个计算环境时,容器是如何使软件可靠运行的问题的解决方案。这可能是从开发者的笔记本电脑到测试环境,从预发布环境到产品,以及可能从数据中心的物理机到私有云或公共云中的虚拟机。

Docker的创始人Solomon Hykes说:“当支持软件的环境不相同时,会出现问题。你将使用Python 2.7进行测试,然后在生产中运行Python 3,然后会发生奇怪的事情。或者你将依赖某个SSL库的版本的行为,而后另一个版本将被安装。你会在Debian中运行测试,而在Red Hat上进行生产,然后各种怪异的事情发生了。”

他补充说:“不仅仅是不同的软件可能会导致问题。网络拓扑也可能不同,或者安全策略和存储可能不同,但软件必须在它上面运行。”

容器如何解决这个问题?

简单地说,一个容器由整个运行时环境构成:一个应用程序,加上它所有的依赖关系,库和其它二进制文件,以及运行它所需的配置文件,统统捆绑在一个包中。通过对应用程序平台及其依赖关系容器化,OS(操作系统)分布和底层架构的差异被抽象了出来。

容器和虚拟化有什么区别?

有了虚拟化技术,可传递的包可以是一个虚拟机,它包含一个完整的操作系统以及应用程序。运行三个虚拟机的物理服务器将有一个管理程序并且在它上面运行着三个独立的操作系统。

相比之下,一个用Docker运行三个容器化应用程序的服务器运行单个操作系统,并且每个容器与其他容器共享操作系统内核。操作系统的共享部分是只读的,而每个容器都有自己的挂载方式(即访问容器的方式)进行写入。这意味着容器更轻量级并且使用的资源远远少于虚拟机。

容器还有什么其它好处?

容器的大小可能只有几十兆字节,而具有自己的整个操作系统的虚拟机的大小可能是几千兆字节。因此,单个服务器可以托管的容器数量远超虚拟机。

另一个主要好处是,虚拟机可能需要几分钟才能启动其操作系统,并开始运行它们托管的应用程序,而容器化的应用程序几乎可以立即启动。这意味着容器可以在需要时以“即时”的方式实例化,并且在不再需要时可以消失,从而释放其主机上的资源。

第三个好处是容器化兼顾了更大的模块化。应用程序可以拆分为模块(如数据库、应用程序前端等等),而不是在单个容器内运行整个复杂的应用程序。这就是所谓的微服务方法。以这种方式构建的应用程序更易于管理,因为每个模块都相对简单,并且可以对模块进行更改而无需重新构建整个应用程序。因为容器非常轻便,所以只有在需要时单个模块(或微服务)才会被模块化,并可立即使用。

Dockers和容器有什么区别?

Docker已经成为容器技术的代名词,因为它在普及上最成功。但容器技术并不新鲜; 它已经以LXC的形式被集成到Linux超过10年了,并且FreeBSD监狱(FreeBSD jail),AIX工作负载分区(AIX Workload Partitions)和Solaris容器也提供了类似的操作系统级虚拟化。

有标准的容器格式吗?

早在2015年,一家叫做CoreOS的公司就制定了与Docker容器规范不同的App Container Image(ACI)规范,当时有这样一个风险,就是新流行的容器运动会与对手的Linux容器格式产生碎片化。

但同年晚些时候宣布了一项名为“开放容器项目(Open Container Project,OCP)”,后来更名为“开放容器计划(OCI)”。在Linux基金会的支持下运作,OCI的目的是为所有的平台开发容器格式并制定容器运行时软件的行业标准。OCP标准的起点是Docker技术,Docker向该项目贡献出其代码库约5%的代码,使项目可以顺利展开。

该项目的赞助商包括AWS、谷歌、IBM、惠普、微软、VMware、Red Hat、甲骨文、推特和HP以及Docker和CoreOS

为什么这些公司都要参与开放式容器计划?

OCI的想法是确保容器技术(如容器格式)的基本构成要素被标准化,以便每个人都可以利用它们。

这意味着组织可以专注于开发支持在企业或云环境中使用标准化容器所需的附加软件,而不是耗费资源开发竞争性容器技术。所需的软件类型包括容器编排和管理系统以及容器安全系统。

有没有免费的开源容器管理系统?

有,最有名和使用最广泛的免费且开源的容器管理系统可能是Kubernetes,它是一个起源于谷歌的软件项目。Kubernetes提供了部署、维护和扩展容器化应用程序的机制。

现存的有哪些商业容器管理解决方案?

Docker企业版也许是最有名的商业容器管理解决方案。它为在企业Linux或Windows操作系统和云提供商上运行的应用程序提供了一个集成的,经过测试和认证的平台。

但还有很多其它的,有几个值得注意的是以Kubernetes为核心的专有软件层。这类管理软件产品的例子有:

·CoreOS的Tectonic预封装了构建谷歌风格的基础设施所需的所有开源组件,并增加了其它商业功能,例如管理控制台,企业SSO集成以及企业就绪的容器注册服务(registry)Quay。

·Red Hat的OpenShift容器平台(Open Shift Container Platform)是一种内部部署的私有的平台即服务产品,建立在由Docker支持的应用程序容器核心,由Kubernetes在Red Hat Enterprise Linux的基础上提供编排和管理。

·Rancher Labs的Rancher是一种商业开源解决方案,可以在任何基础架构上轻松部署和管理生产中的容器。

容器有多安全?

很多人认为,容器比虚拟机安全性更低,因为如果容器主机内核存在漏洞,那么它可以提供一种进入共享它的容器的方法。管理程序也是如此,但由于管理程序提供远远少于Linux内核(通常实现文件系统,网络,应用程序进程控制等)的功能,因此它的攻击面更小。

但是在过去的几年里,为了增强容器的安全性开发了大量的软件。

例如,Docker(和其它容器系统)现在包括一个签名的基础架构,允许管理员签署容器镜像,以防止不可信的容器被部署。

然而,可信任的签名容器不一定可以安全运行,因为在签名后容器中的一些软件可能会被发现漏洞。因此,Docker和其它容器提供容器安全扫描方案,可以就容器镜像是否有任何可被利用的漏洞而通知管理员。

更专业的容器安全软件也被开发出来了。比如Twistlock,它提供的软件可以配置容器的预期行为和“白名单”进程,网络活动(如源和目标IP地址和端口),甚至是某些存储实践,以便可以标记任何恶意的或意外的行为。

另一家专业的容器安全公司Polyverse采用了不同的方法。它利用了这样一个事实,容器可以在几分之一秒内启动,以便每隔几秒在已知的良好状态中重新启动容器化应用程序,将黑客必须利用在容器中运行的应用程序的时间最小化。

哪一个Linux发行版适合用作容器主机?

如果Linux发行版的预期用途只是充当容器主机来运行容器,那么它们大多数都是功能上臃肿的。因此,很多Linux发行版本被设计为专门用于运行容器。

一些例子包括:

·Container Linux(以前的CoreOS Linux)—为容器而构建的第一个轻量级容器操作系统之一。

·RancherOS –由容器构建的简化的Linux发行版,专门用于运行容器。

·Photon OS - 最小的Linux容器主机,被优化在VMware平台上运行。

·Project Atomic Host - Red Hat的轻量级容器操作系统拥有基于CentOS和Fedora的版本,Red Hat Enterprise Linux中还有一个下游企业版本。

·Ubuntu Core - 最小的Ubuntu版本,Ubuntu Core被设计为用于物联网设备和大规模云端容器部署的主机操作系统

如果是Windows环境会怎么样?

除了在任何运行3.10(或更高版本)的Linux内核的Linux发行版上运行,Docker还可以在Windows上运行。

这是因为在2016年,微软在Windows Server 2016和Windows 10中引入了运行Windows容器的能力。这些是为Windows设计的Docker容器,并且它们可以在任何Docker客户端或微软的PowerShell中进行管理。

(微软还引入了Hyper-V容器,这些容器是运行在Hyper-V虚拟机中的Windows容器,用于增加隔离度。)

Windows容器可以部署在Windows Server 2016的标准安装中,精简的Server Core安装或Nano Server安装选项,专门用于在容器或虚拟机中运行应用程序。

除了Linux和Windows之外,Docker还在流行的云平台上运行,包括亚马逊的EC2,谷歌的 Compute Engine,微软的Azure和Rackspace。

容器最终会取代全面的服务器虚拟化吗?

由于一些重要的原因,这在可预见的未来不太可能。

首先,仍然有广泛的意见认为虚拟机比容器提供了更高的安全性,因为它们提供了增强的隔离级别。

其次,可用于编排大量容器的管理工具还不如管理虚拟化基础架构的软件(如VMware的 vCenter或微软的System Center)全面。对这类软件进行了大量投资的公司在没有充分理由的情况下不太可能放弃他们的虚拟化基础架构。

也许更重要的是,虚拟化和容器也开始被视为互补技术而不是敌对技术。这是因为容器可以在轻量级虚拟机中运行,以增加隔离度,进而提高安全性,并且因为硬件虚拟化可以更轻松地管理支持容器所需的硬件基础架构(网络、服务器和存储)。

VMware鼓励投资虚拟机管理基础架构的客户在其轻量级虚拟机上的Photon OS容器Linux发行版上运行容器,而这些轻量级的虚拟机可以在vCenter进行管理。这是VMware的“VM中的容器”策略。

但是,VMware还引入了所谓的vSphere集成容器(vSphere Integrated Containers ,VIC)。这些容器可以被直接部署到独立的ESXi主机,也可以像虚拟机一样被部署到vCenter Server。这是VMware的“容器作为虚拟机”策略。

这两种方法都有其优点,但重要的是,能够在虚拟化基础架构中使用容器而不是替换虚拟机,这往往是很有用的。

 

 

作者:佚名

来源:51CTO

时间: 2024-10-21 09:38:54

关于容器,你应该提的13个问题及应该知道的答案的相关文章

中国纺织服装出口退税率由11%提至13%

财政部.国家税务总局7月30日发布<关于调整纺织品服装等部分商品出口退税率的通知>,经国务院批准,调整部分商品的出口退税率. 具体内容包括: --将部分纺织品.服装的出口退税率由11%提高到13%:将部分竹制品的出口退税率提高到11%. --取消红松子仁.部分农药产品.部分有机胂产品.紫杉醇及其制品.松香.白银.零号锌.部分涂料产品.部分电池产品.碳素阳极的出口退税. 两部门通知称,以上商品出口退税率调整自2008年8月1日起执行.具体执行时间,以"出口货物报关单(出口退税专用)&q

银监会否认要求大型银行资本充足比率提至13%

银监会新闻发言人今天表示,银监会早已部署要求各商业银行,按照审慎监管要求提前做好年底前的信贷风险管理工作. 一是要回头看,做好信贷后评价工作.要对去年四季度至今年前二季度高额投放带来的问题进行三查,对三个办法一个指引准备工作进行评价.特别要关注资本补充的落实情况,贷款尽职调查执行情况,流动性.大额风险集中度和贷款分类准确度等情况. 二是要从严把握审慎监管的科学要求.要建立和完善资本后续补充机制.中长期资本补充规划和商业发展规划,对资本充足率较低,未能制定科学的.切实可行的资本补充计划和商业计划的

容器真的是万能吗?看完这些你会沉默

麦克莱恩发明集装箱的时候,或许不会想到这种运输方式会推动经济的全球化发展.当一批批货物被打包搬上火车.轮船.飞机,集装箱不仅解决了装货慢.载量小的窘境,还将原来数月的运输时间从数月缩短至数天.当然,考虑到货物的多样性,以及具体使用情况,集装箱并非万能药.这就像是容器,将开发者的应用打包发布到Linux平台上不是一本万利,还要涉及部署成本.操作环境.安全性等问题. 图片来自mediaagility 2013年3月,PaaS服务商dotCloud(后来的Docker)将应用容器引擎Docker开源,

docker1.13新功能上要关注的点

如果要作单点端口映射,则需要结合constraint和label来定位具体的proxy机器吧. 如果不用这种模式,,ingress确实又太浪费集群端口了.. 纠结,,看看如何和compose v3作很好的结合吧.. 阿西巴~~~~ ================= https://blog.lab99.org/post/docker-2016-11-14-what-is-new-in-docker-1-13.html#yun-xu-docker-service-create-ying-she-

VMware容器什么鬼?

存储虚拟化主要基于存储抽象的概念.换句话说,就是在物理存储硬件上的软件层,它支持硬件透明的存储分配.   而存储容器,与存储虚拟化不同.VMware vSphere 6.0中的容器是各种物理存储类型的分组.存储容器区别于存储虚拟化的是VMware容器能够暴露底层硬件特性. 试想一下在你的公司有这样一个特殊的部门,它有着多样的存储需求:高性能存储,要有重删功能,也要支持快照.各种所需的存储类型都能够结合进VMware容器,然后提交给VVOL数据存储对象.单一的数据存储对象能够访问多种存储类型.管理

浅谈网站提权重如何才能让搜索引擎更佳认可的建言

如今做网站真的很累,搜索引擎老大百度一会打压外链卖买,一会又推网站原创提示标致,真的有点让站长们摸不着头脑,那么现在要如何提高网站权重呢,如何才能让搜索引擎们更加科学的认可呢,下面我就用实例从几个方面谈谈. 一.外链对网站提权不是没用了,依然有用只是份量减少 前些天,各大网站的外链买卖栏目就被迫的关停了,这个以前被新站上线必买些外链的法宝一下就让bd给变没了,难道外链对于网站提权真的一点用处就没得了吗?答案当然是否定的,只是百度要让站长明白,不要过份的去搞些单纯的外链,你得适可而止.为什么说外链

使用 Kubernetes 管理容器化的有状态应用

  编者按:本文转载自"才云 Caicloud",作者 Josh Berkus. 目前,几乎所有关于容器和微服务的谈论都跟"无状态"的应用挂钩.这完全可以理解,因为无状态应用程序更简单.而且容器和编排技术已经成熟到能够承工作负载的程度:即有状态的应用. Kubernetes 是一个用于自动部署.扩展和管理容器化应用程序的开源系统,我之前做过两次关于 Kubernetes.数据库以及容器的演讲. 什么是"无状态"应用? 无状态服务,即 Web 服务

容器到底可以做什么?—客户不再头疼 —— OSCAR即将发布“容器技术应用场景”规范

容器产业化的三个问题 现在的容器真是让人欢喜让人忧,在客户那里,厂商经常表示容器无所不能,但又有很多客户吐槽容器体验不好.所以,容器你想闹哪样? 容器表示很无辜,我本将心向明月,奈何明月"掉"沟渠.好好的明月技术,用不好,真是有很多的Gap. 不可否认,容器现在还处在初级发展阶段,仍有很多需要完善的地方,但是目前市场上也有很多成功使用容器的案例. 容器能做什么? 怎么做? 怎么选技术解决方案? 这是客户需要亟需了解的三个问题. 容器技术能够帮助企业解决什么具体问题?企业在部署容器技术时

反思|容器与虚拟机的真正区别在哪里?

本文讲的是反思|容器与虚拟机的真正区别在哪里,[编者的话]本文主要介绍了容器与虚拟机的区别,在策略.性能以及安全等方面,作者一一回答了目前人们对容器与虚拟机区别的疑问. "Docker和虚拟机有什么不同?",这似乎是我听到的有关容器最常见的问题之一,我一般给出的答案取决于提出此问题的不同方式.但是我喜欢这样开头:"容器和虚拟机仅仅相似于它们都提供了隔离环境." 接着我阐述他们之间的差异,"容器能做的事少得多并且使用起来相当廉价.而虚拟机提供整个虚拟化硬件层