Docker 容器共享主机的内核,但它们确实包含自己的应用程序和库。 glibc 是这些库之一,对吗?
如果是这样,为什么不存在 glibc 与实际容器主机运行的任何内核版本不兼容的问题?
答案1
在考虑应用程序时,Linux 内核是相当二进制兼容的。如果您发现不兼容,很可能是由以下原因引起的
A。 CPU架构不匹配(显然与内核版本无关)或
b.图书馆问题。应用程序通常依赖于一些库。如果其中任何一个缺失或不兼容,则该应用程序可能无法运行。
当然,内核中的一些 API/ABI 可能会在不同版本之间发生变化,因此理论上可能会发生内核不兼容的情况。只是这种事并不经常发生……
内核模块是一个不同的故事,跨版本的兼容性水平据我所知相当低。但你不需要 glibc 的内核模块......