我是 90% 的 Windows 用户,但我喜欢 ubuntu 并将其用于 ROS、opencv 或 python 等。
对于像 ROS 这样每隔几个月就会推出新版本的复杂应用程序,Docker 似乎绝对适契约(Contract)时运行多个版本。
我要问的是关于内核的。我对内核的工作原理或更新频率一无所知。但是我想知道如果我在主机上获得内核更新,我的 docker 镜像是否会停止运行。
所以基本上,我熟悉 VM,只要有 x86 CPU 和 RAM 以及 HDD,您的 VM 就会正常工作,并且不会因任何主机操作系统更新而中断。
但是对于 Docker,我是否应该担心在 linux 内核经过一些更新后的几年内,我的 Docker 镜像/容器将不再工作?如果在具有较新内核的主机上的 Docker 容器中重新编译一些代码,该镜像/容器是否会无法在具有较旧内核的主机上运行?
最佳答案
in a couple years when the linux kernel has gone through some updates, my Docker images/containers won't work anymore?
作为内核,Linux 从不破坏用户空间应用程序。 这种情况已经存在多年,他们没有改变的计划。
事实上,大多数应用程序几乎从不与内核“对话”,也从不链接到内核,除非它们需要访问真正底层的东西。
相反,应用程序使用提供所有基本系统调用和函数的 libc
(参见 this link)。
如果对 libc
进行重大更新,这个库不会在主机和容器之间共享,它无论如何都会嵌入到您的容器中。
这意味着出于安全原因,您可以(并且应该)应用主机上可用的任何内核更新。您还应该确保您的容器包保持最新。
关于linux - 对于 Docker,应用程序会在主机内核更新时停止工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217566/