专栏首页linux百科小宇宙容器与云|什么是容器?为什么我们关注它?
原创

容器与云|什么是容器?为什么我们关注它?

什么是容器?你需要它们吗?为什么?在这篇文章中,我们会回答这些基本问题。

但是,为了回答这些问题,我们要提出更多的问题。当你开始考虑怎么用容器适配你的工作时,你需要弄清楚:你在哪开发应用?你在哪测试它?你在哪使用它?

你可能在你的笔记本电脑上开发应用,你的电脑上已经装好了所需要的库文件、扩展包、开发工具和开发框架。它在一个模拟生产环境的机器上进行测试,然后被用于生产环境。问题是这三种环境不一定都是一样的;它们没有同样的工具、框架和库。你在你机器上开发的应用不一定可以在生产环境中正常工作。

容器解决了这个问题。正如Docker解释的,“容器镜像是软件的一个轻量的、独立的、可执行的包,包括了执行它所需要的所有东西:代码、运行环境、系统工具、系统库、设置。”

这代表着,一旦一个应用被封装成容器,那么它所依赖的下层环境就不再重要了。它可以在任何地方运行,甚至在混合云环境下也可以。这是容器在开发人员,执行团队,甚至CIO(信息主管)中变得如此流行的原因之一。

容器对开发人员的好处现在开发人员或运维人员不再需要关注他们要使用什么平台来运行应用。开发人员不会再说:“这在我的系统上运行得好好的。”

容器的另一个重大优势是它的隔离性和安全性。因为容器将应用和运行平台隔离开了,应用以及它周边的东西都会变得安全。同时,不同的团队可以在一台设备上同时运行不同的应用——对于传统应用来说这是不可以的。

这不是虚拟机(VM)所提供的吗?既是,也不是。虚拟机可以隔离应用,但它负载太高了。在一份文献中,Canonical比较了容器和虚拟机,结果是:“容器提供了一种新的虚拟化方法,它有着和传统虚拟机几乎相同的资源隔离水平。但容器的负载更小,它占用更少的内存,更为高效。这意味着可以实现高密度的虚拟化:一旦安装,你可以在相同的硬件上运行更多应用。”另外,虚拟机启动前需要更多的准备,而容器只需几秒就能运行,可以瞬间启动。

容器对应用生态的好处现在,一个庞大的,由供应商和解决方案组成的生态系统已经可以让公司大规模地运用容器,不管是用于编排、监控、记录或者生命周期管理。

为了保证容器可以运行在任何地方,容器生态系统一起成立了开源容器倡议(OCI)。这是一个Linux基金会的项目,目标在于创建关于容器运行环境和容器镜像格式这两个容器核心部分的规范。这两个规范确保容器领域中不会有任何不一致。

在很长的一段时间里,容器是专门用于Linux内核的,但微软和Docker的密切合作将容器带到了微软平台上。现在你可以在Linux、Windows、Azure、AWS、Google计算引擎、Rackspace,以及大型计算机上使用容器。甚至VMware也正在发展容器,它的vSphereIntegratedContainer(VIC)允许IT专业人员在他们平台的传统工作负载上运行容器。

容器对CIO的好处容器在开发人员中因为以上的原因而变得十分流行,同时他们也给CIO提供了很大的便利。将工作负载迁移到容器中的优势正在改变着公司运行的模式。

传统的应用有大约十年的生命周期。新版本的发布需要多年的努力,因为应用是依赖于平台的,有时几年也不能到达产品阶段。由于这个生命周期,开发人员会尽可能在应用里塞满各种功能,这会使应用变得庞大笨拙,漏洞百出。

这个过程影响了公司内部的创新文化。当人们几个月甚至几年都不能看到他们的创意被实现时,他们就不再有动力了。

容器解决了这个问题。因为你可以将应用切分成更小的微服务。你可以在几周或几天内开发、测试和部署。新特性可以添加成为新的容器。他们可以在测试结束后以最快的速度被投入生产。公司可以更快转型,超过他们的竞争者。因为想法可以被很快转化为容器并部署,这个方式使得创意爆炸式增长。

结论容器解决了许多传统工作负载所面对的问题。但是,它并不能解决所有IT专业人员面对的问题。它只是众多解决方案中的一个。在下一篇文章中,我们将会覆盖一些容器的基本术语,然后我们会解释如何开始构建容器。

通过Linux基金会和edX提供的免费的“IntroductiontoLinux”课程学习更多Linux知识。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 通俗讲解:什么是容器?为什么我们要使用它?

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。

    Jerry Wang
  • 什么是容器云?

    了解当前云计算的发展状态,其实网上有很多文章可以阐述得很详细。笔者列出了三篇网上较新、较全的文章,大家可以看看。阅读完之后,我想你对当前云计算的发展历史和态势都...

    kubernetes中文社区
  • 为什么是容器,Docker和Kubernetes?

    要参加微信课堂以及日常技术交流,请给我们发微信(微信号:markpah),请注明加入以下哪个群:

    盆盆
  • 容器与云|为什么需要关心服务网格

    很多开发者不知道为什么要关心服务网格ServiceMesh。这是我在开发者见面会、会议和实践研讨会上关于云原生架构的微服务开发的演讲中经常被问到的问题。我的回答...

    知忆
  • 微服务为什要用docke?什么是docker,什么是容器与镜像

    微服务为什么一定要用docker?今天通过一篇文章为大家分享docker入门详解,欢迎大家一起阅读!

    艾编程
  • 为什么我们需要一个容器镜像的包管理器

    我维护着一个叫做 Tern[1] 的开源项目,这个项目是为容器镜像生成一个软件材料清单(SBOM)。很多安装在容器镜像中的组件都是独立安装的,而非通过包管理器。...

    Jintao Zhang
  • 为什么说容器是单进程模型

    Go 语言现在的一个主要应用领域就是云原生技术,包括容器(以 Docker 为代表)、Kubernetes、Prometheus 等。后面将写一系列文章来介绍一...

    大彬
  • GDC 2017前瞻:VR内容之年,我们应该关注什么?

    VRPinea
  • (1)Spring基础|什么是Spring|Spring相关概念|为什么说Spring是轻量级容器

    想着写一些关于spring、springmvc系列的,毕竟这类是框架基础,早些年用的都是SSM或者SSH架构,都是非常流行的,包括我刚毕业那会,之前接触的都是s...

    小小鱼儿小小林
  • 什么是容器、微服务与服务网格?

    如你所知,已经有很多关于服务网格的资料,但这是另外一篇。是的!但是为什么会有这篇文章呢?因为我想给你们一些不同的视角,他们希望服务网格在10年前就已经存在,远早...

    用户5927304
  • Kubernetes系列学习文章 - 什么是容器云?(一)

    | 导语 前面我们学习了docker的一些知识,那么从今天起,我们开始学习下Kubernetes(k8s)方面系列知识。大家有兴趣可以跟我一起学习。另外,本人...

    宝哥@上云专家
  • Docker镜像竟然也是容器?!Docker 到底为什么这么快!?

    Docker虚拟化技术是基于容器化,容器化技术的本质其实是基于内核资源调度的再分配! 并不是什么新技术,只是近年Linux内核更加成熟,在资源调度隔离更成熟,所...

    运维部落
  • 容器上使用Docker还是Rocket?为什么不一起用呢?

    在2014年接近尾声时,CoreOS在Docker发布了Rocket,声称Docker的流程模型有着“根本性的缺陷”。虽然CoreOS的创始人Alex Polv...

    小小科
  • 容器上使用Docker还是Rocket?为什么不一起用呢?

    在2014年接近尾声时,CoreOS在Docker发布了Rocket,声称Docker的流程模型有着“根本性的缺陷”。虽然CoreOS的创始人Alex Polv...

    小小科
  • 为什么我们的机器学习平台支持Python,而不是R

    有很多文章比较了Python和R在数据科学方面的相对优点。但是这并不在这篇文章的讨论范围。这篇文章是关于数据分析师和机器学习工程师的分歧,以及他们对编程语言的不...

    HuangWeiAI
  • 为什么说机器学习是我们预防网络威胁的最佳武器

    随着攻击面的不断扩大以及攻击技术的日趋复杂,安全行业目前正面临着严重的“安全技能短缺”。因此,我们过去所使用的安全保护策略可能已经不再像以前那么有效了,而现在唯...

    FB客服
  • web开发中 web 容器的作用(如tomcat)什么是web容器?web容器的作用容器如何处理请求URL与servlet映射模式

    我们讲到servlet可以理解服务器端处理数据的java小程序,那么谁来负责管理servlet呢?这时候我们就要用到web容器。它帮助我们管理着servlet等...

    desperate633
  • Servlet主要相关类核心类 容器调用的过程浅析 servlet解读 怎么调用 Servlet是什么 工作机制

    针对于JavaWeb项目,动态响应则是Servlet容器通过调用Servlet进行响应

    noteless
  • 关于现代包管理器的深度思考——为什么现在我更推荐 pnpm 而不是 npm/yarn?

    很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁地输出一些前端工程相关的干货,希望对大家有一些启发,也希望在实际的工作当中帮助大家提升...

    用户3806669

扫码关注云+社区

领取腾讯云代金券