基于Alpine的Docker图像在Ubuntu主机上完全兼容?

8hhllhi2  于 2023-01-25  发布在  Docker
关注(0)|答案(3)|浏览(166)

在Ubuntu主机上运行基于Alpine的Docker映像是否存在兼容性问题或已知限制?
我知道Docker提供了进程级隔离,并且机器资源调用是通过cgroup接口进行的,但是我想知道(并且担心)是否有特定的情况,或者甚至是语言,如果不采取额外的步骤来配置主机,这种类型的设置(在Ubuntu主机上运行Alpine容器)会出现运行时问题。
编辑:
我想试着提高我的问题...
我知道Docker提供了隔离,但我想知道隔离中是否有"漏洞"?如果有漏洞,那么在与基本映像匹配的主机上运行Docker映像可能会更好,以"保证"不会发生奇怪的运行时错误。
更具体地说,应用程序在一定程度上需要内核代码,并且是用特定的内核构建的。在具有不同内核的主机上运行这些应用程序可能会导致奇怪的运行时错误。
例如,在x86主机上的Docker容器中运行x64应用程序会导致不好的事情发生吗?

oyt4ldly

oyt4ldly1#

只要主机为Linux内核版本3.10或更高版本,容器就应该没有问题。
有关原因的详细信息,请参见此链接:How is Docker different from a normal virtual machine?

7cwmlq89

7cwmlq892#

据我所知,Docker是完全兼容的Linux发行版以上的特定内核。所有的Linux发行版基本上使用相同的内核,这是Docker守护程序与系统接口,所以无论是运行在容器内的主机上的不同发行版应该是完全正确的。
如果不是这样的话,那么Docker真的不会那么有用,我想。
去年我个人在不同的主机系统上运行过不同的发行版容器,没有出现任何问题。

tf7tbtn2

tf7tbtn23#

只有在故意破坏容器化系统隔离的情况下(例如所谓的docker-in-docker运行),如果它们将非常不同的主机系统的某些部分暴露给容器化应用程序,才会出现问题(在这种情况下,标准C库中的不兼容性,例如Ubuntu的glibc和Alpine的musl之间的不兼容性将导致问题,因为它们甚至在两个不同的Ubuntu LTS版本之间也会导致问题,具有不同的X1 M2 N1 X构造)。

相关问题