gpt4 book ai didi

linux - 如果内核库发生变化,Docker 如何允许可移植容器

转载 作者:IT老高 更新时间:2023-10-28 12:43:11 25 4
gpt4 key购买 nike

如果我的程序依赖于内核库的某个函数,而该函数又具有一系列依赖关系,那么 docker 如何在不拍摄所有内核库快照的情况下保持小型和可移植性(以及管理函数的依赖关系问题)而不是图书馆级别)?换句话说,它如何使自己免受内核库从一个版本到下一个版本的变化的影响,并且它是在库或函数粒度上做到这一点的吗?

另外,如果我的应用程序有一个软件堆栈,其中一个函数与内核库 A 的 future 版本兼容,而另一个使用内核库 A 的函数不再兼容,该怎么办。换句话说:

函数 1 和 2 都依赖并使用内核 Lib A 1.0 版中的函数

函数 1 适用于 Lib A 版本 1.1函数 2 与 Lib A 1.1 版中断(函数 2 仍需要 Lib A 1.0 版)

我对 Docker 了解不多,所以这是一个新手问题。

最佳答案

没有“内核库”这样的东西。与您所描述的最接近的是:

  • libc,它是容器镜像的一部分,因此不会改变。

  • Linux 内核 ABI,大部分情况下是不变的。虽然偶尔会对内核 ABI 进行一些更改,但尽可能少地这样做——内核开发人员尽一切可能保持向后兼容性。在进行更改的地方,最常见的是与在容器中运行的应用程序无关的组件(例如,音频/视频输出、动态设备管理等)。

关于linux - 如果内核库发生变化,Docker 如何允许可移植容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17934004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com