什么是容器,为什么需要它们?

容器能为您做什么?以下是关于应用程序容器技术的10个常见问题,特别是Docker。

思想库

码头工人爆炸到现场一对夫妇几年前,在IT此后就环绕它已经引起兴奋。

Docker提供的应用程序容器技术承诺将改变IT操作的执行方式,就像几年前的虚拟化技术一样。

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

什么是容器,为什么需要它们?

在从一个计算环境迁移到另一个计算环境时,如何让软件可靠地运行,容器是这个问题的解决方案。这可能是从开发人员的笔记本电脑到测试环境,从登台环境到生产环境,也可能是从数据中心的物理机器到私有或公共云中的虚拟机。2020欧洲杯预赛

Docker的创建者Solomon Hykes说,当支持的软件环境不一样时,就会出现问题,“您将使用Python 2.7进行测试,然后在生产环境中运行Python 3,就会发生一些奇怪的事情。或者,您将依赖于某个版本的SSL库的行为,然后安装另一个版本的SSL库。你可以在Debian上运行测试,在Red Hat上运行产品,然后各种奇怪的事情就会发生。”

不仅仅是不同的软件可以带来不同,他补充说,“网络拓扑可能不同,或者安全策略和存储可能不同,但是软件必须在上面运行。”

容器如何解决这个问题?

简单地说,一个容器由一个完整的运行时环境组成:一个应用程序,加上它的所有依赖项、库和其他二进制文件,以及运行它所需的配置文件,打包到一个包中。通过封装应用程序平台及其依赖项,OS发行版和底层基础设施之间的差异就被抽象出来了。

这听起来像是虚拟化。有什么区别呢?

使用虚拟化技术,可以传递的包是一个虚拟机,它包括整个操作系统和应用程序。运行三个虚拟机的物理服务器将有一个管理程序,并在其上运行三个独立的操作系统。

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

这在实践中有什么不同?

一个容器的大小可能只有几十兆字节,而拥有自己的整个操作系统的虚拟机的大小可能是几千兆字节。

因此,一台服务器可以承载的容器比虚拟机多得多。虚拟机可能需要几分钟来启动它们的操作系统并开始运行它们所承载的应用程序,而容器化的应用程序几乎可以立即启动。

如果容器共享一个操作系统,它们的安全性如何?

大家一致认为容器不像虚拟机那样安全。原因是,如果内核中有漏洞,它可以提供一种方法进入共享它的容器(尽管SELinux可以帮助)。系统管理程序也是如此,但是由于系统管理程序提供的功能比典型的Linux内核(通常实现文件系统、网络、应用程序进程控制等)少得多,所以它提供的攻击面要小得多。

总之,容器通常不能提供与硬件虚拟化相同的隔离级别。

Docker和容器之间有什么区别?

Docker已经成为容器技术的同义词,因为它在普及容器技术方面是最成功的。但是容器技术并不是新技术:它已经以以下形式构建到Linux中了LXC近10年来,FreeBSD监狱、AIX工作负载分区和Solaris容器也提供了类似的操作系统级虚拟化。

今天,Docker并不是Linux的唯一游戏。一个值得注意的选择是rkt的命令行工具运行产生的应用程序容器CoreOS。Rkt能够处理Docker容器以及符合its的容器应用程序容器图像规范

CoreOS首席执行官亚历克斯•波尔维(Alex Polvi)表示,推出rkt的一个原因是,Docker变得过于庞大,已经失去了其简单性。“Docker现在正在构建用于启动云服务器的工具,用于集群的系统,以及广泛的功能:构建映像、运行映像、上传、下载,甚至覆盖网络,所有这些都编译成一个单一的二进制文件,主要作为服务器上的根运行,”他说

CoreOS的首席倡导者Kelsey Hightower补充说,应用程序容器图像比Docker图像更安全,因为它们是由它们的创建者签名的。他说:“我认为用户想要签名,就像苹果在AppStore里给应用程序签名一样。”“当你使用rkt并获取一个应用程序容器图像时,你可以在运行它之前决定是否信任开发者。Rkt也可以运行Docker图像,但它们不会总是被签名。”

Docker和rkt应该在什么操作系统上运行?

LXC(以及Docker自己的容器技术libcontainer,它取代了LXC)是基于Linux的,因此任何具有相当现代的内核(如3.8或更新的内核)的Linux发行版都可以在x64硬件上运行它们。

如果Linux发行版的预期用途是运行容器,那么大多数发行版都不必要地增加了大量特性。这并不奇怪,因为已经出现了许多专门为Linux设计的发行版运行的容器。一些例子包括CoreOSRed Hat的项目原子规范的时髦的Ubuntu,VMware的项目光子

有任何商业的Linux容器解决方案吗?

是。它们包括以下:

  • 企业Docker订阅-包含Docker Hub企业、Docker引擎和商业支持订阅的包解决方案。
  • CoreOS构造- 集成的CoreOS软件,包括工作流和仪表板的管理控制台,一个集成的注册表建设和共享的Linux容器和其他工具来自动化部署和定制滚动更新,与谷歌的Kubernetes容器管理平台沿堆栈。

如果我是一个Windows商店会发生什么?我还可以使用容器吗?

微软已经宣布它将把Docker容器技术引入到Windows Server中,同时也引入了运行在Windows Server上的Windows Server容器。

一个“瘦”版的Windows服务器被称为纳米服务器,还将介绍专门为运行容器而设计的。在概念上类似于Windows Server 2008的Windows Server核心,它将是一个典型的Windows服务器安装大小的5%。

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

如果只是因为虚拟机提供了比容器更好的安全性,那么短期内不太可能出现这种情况。

用于编排大量容器的管理工具也远不如VMware vCenter或Microsoft的System Center这样的软件那样全面,它们可用于管理虚拟基础设施。

虚拟化和容器也可能被视为互补技术,而不是竞争技术。这是因为容器可以在轻量级虚拟机中运行,以增强隔离性和安全性,而且硬件虚拟化使管理支持容器所需的网络、服务器和存储等硬件基础设施变得更加容易。

“大多数人不想管理硬件,所以他们把它放在VMware上,然后用软件来管理,”Hightower说。“集装箱改变什么。你可以使用容器,如果你不想管理硬件,你也可以使用虚拟化。”

这篇文章,“什么是容器?为什么你需要它们?首席信息官

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最重要的话题发表评论。
相关:

版权©2015足球竞彩网下载

工资调查:结果在