首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >容器是否特定于主机操作系统?

容器是否特定于主机操作系统?
EN

Stack Overflow用户
提问于 2022-03-21 03:14:42
回答 1查看 653关注 0票数 0

容器是否特定于特定的主机操作系统?例如,如果容器是在Windows上创建的,具有特定的依赖关系(例如,DLL文件),那么它能在主机操作系统是Linux的设置中运行吗?我最初假设容器必须特定于特定的主机操作系统。

但以下两段摘录似乎表明,我可能没有正确理解机械原理。因此,我的问题是:容器是在码头引擎上构建的吗?所以当包含依赖项时,它们是相对于码头引擎的,而底层主机操作系统并不重要?

(1) IBM:

容器允许开发人员更快、更安全地创建和部署应用程序。在传统方法中,代码是在特定的计算环境中开发的,当转换到新的位置时,常常会导致错误和错误。例如,当开发人员将代码从桌面计算机传输到虚拟机(VM)或从Linux传输到Windows操作系统时。容器化通过将应用程序代码与运行应用程序所需的相关配置文件、库和依赖关系捆绑在一起,从而消除了这个问题。这个单一的软件包或“容器”是从主机操作系统中抽象出来的,因此,它是独立的,并且变得可移植--能够在任何平台或云上运行,不受任何问题的影响。https://www.ibm.com/cloud/learn/containerization

(2)码头工人:

在Linux、macOS和Windows上运行吗?您可以在Docker容器中运行Linux和Windows程序以及可执行文件。Docker平台在Linux ( x86-64、ARM和许多其他CPU体系结构上)和Windows (x86-64)上运行。Docker .生产的产品允许您在Linux、Windows和macOS上构建和运行容器。Docker技术给普通的LXC增加了什么?码头技术不是LXC的替代品。“LXC”是指Linux内核(特别是名称空间和控制组)的功能,它允许相互之间的沙箱进程,并控制它们的资源分配。在内核特性的底层基础之上,Docker提供了一个具有几个强大功能的高级工具:跨机器的便携部署。Docker定义了一种格式,用于将应用程序及其所有依赖项绑定到一个称为容器的对象中。此容器可传送到任何启用码头的机器.容器可以在那里执行,保证向应用程序公开的执行环境在开发、测试和生产中是相同的。LXC实现流程沙箱,这是便携部署的一个重要先决条件,但对于便携部署来说还不够。如果您向我发送了安装在自定义LXC配置中的应用程序的副本,它几乎肯定不会像在您的机器上那样运行。您发送给我的应用程序与您机器的特定配置有关:网络、存储、日志记录等。Docker为这些特定于机器的设置定义了一个抽象。完全相同的Docker容器可以在许多不同的机器上运行--不变--具有许多不同的配置。

EN

回答 1

Stack Overflow用户

发布于 2022-03-21 03:32:18

主机操作系统,或确切地说,内核提供的仍然是重要的。这就是为什么不能在Linux上运行Windows容器的原因。由于Hyper-V和WSL2,您可以在Windows上运行Linux容器,也可以在macOS上使用Hypervisor运行,但仅此而已。如果所提供的内核是兼容的(不一定是相同的),通常是相似的版本和相同的体系结构(请记住,有x64、ARM64等)或者至少支持虚拟化(x64容器可以在M1上运行,即ARM64),那么您可以只运行容器,而不必担心DLL,因为它们应该包含在您开始使用的基本映像中或生成的映像中。

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

https://stackoverflow.com/questions/71552447

复制
相关文章

相似问题

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