首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OS容器与应用程序容器

OS容器与应用程序容器
EN

Stack Overflow用户
提问于 2016-12-05 06:48:10
回答 2查看 1.7K关注 0票数 14

所以,前几天我读到了关于OS/System容器与应用程序容器这里。的文章。

这里提到了Docker是一个应用程序容器,并且

任何运行OS的容器都是系统容器。

现在,我很困惑,因为即使在Docker中运行应用程序,您也需要有一个基本的映像,这可能是任何发行版。那么,这难道不应该使Docker也成为OS容器技术吗?有人能列出OS和应用程序容器技术之间的区别吗?

EN

回答 2

Stack Overflow用户

发布于 2021-09-10 16:34:27

正如@csprabala在他的链接回答的线索中所指出的那样:

OS容器(或系统容器)和应用程序容器都是首先也是最重要的容器,这意味着它们以类似的方式运行,分别共享内核并将所需的所有内容都包含在它们的“容器映像”中。

区别主要在于,当OS容器几乎完全使用它们自己的内核API函数(描述为这里)时,就像VM那样直接使用它们自己的内核API函数,但与VM不同--VM通常运行在虚拟机管理程序之上(比如Oracle VirtualBox或VMWare ESXi),并且硬盘表示为.vmdk文件,系统容器就像主机OS上的任何其他容器一样,作为一组独立的进程运行。

相反,使用Docker、cri-o或contained (所有链接的这里)的应用程序容器仍然依赖某种底层容器引擎作为客户操作系统的中介,并在其上作为常规进程运行(除非使用不同的架构,然后使用仿真),这就是为什么如果您在Linux发行版上将docker作为一个服务运行,并且在其之上运行一个这里应用程序,并且您使用top检查正在运行的进程--您可以看到Java进程直接在主机操作系统上运行,但当然与命名空间、PID树(或进程树)和C组分离。

该实现有一些相似之处,但在使用和低层次的工作上有很大的不同。

票数 1
EN

Stack Overflow用户

发布于 2020-10-12 15:20:56

这是因为您的容器可以在映像所基于的任何操作系统上运行应用程序。如果基本映像是Linux容器,则可以在任何类型的Linux上运行容器。当谈到Windows上的容器化(因为Linux和Windows OS的架构师)时,它变得更加模糊了。使用虚拟机,您需要一辆手推车来装载所需的所有东西(操作系统、内核库、misc库,然后是应用程序及其库)。对于容器,您只需要一个可以轻松携带的桶(从Linux的角度来看),因为您只需要一些内核api库,然后是您的应用程序和它需要的任何库。没有必要搬运厨房的水槽.操作系统)。因此,是的,容器是应用程序容器,因为它包含应用程序,而OS容器需要携带操作系统。我希望这个类比能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40968555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档