Linux 对于Docker,当主机内核更新时,应用程序会停止工作吗?

Linux 对于Docker,当主机内核更新时,应用程序会停止工作吗?,linux,linux-kernel,virtual-machine,docker,Linux,Linux Kernel,Virtual Machine,Docker,我是一个90%使用windows的人,但我喜欢ubuntu,并将其用于ROS、opencv或python等 对于像ROS这样的复杂应用程序,每隔几个月就会推出新版本,Docker似乎绝对希望有几个版本同时运行 我要问的是关于内核的问题。我不知道内核是如何工作的,也不知道它多久更新一次。但是我想知道如果我在主机上得到内核更新,我的docker映像是否会停止运行 因此,基本上,我熟悉虚拟机,只要有x86 CPU、RAM和HDD,您的虚拟机就可以工作,并且不会因任何主机操作系统更新而中断 但是对于Do

我是一个90%使用windows的人,但我喜欢ubuntu,并将其用于ROS、opencv或python等

对于像ROS这样的复杂应用程序,每隔几个月就会推出新版本,Docker似乎绝对希望有几个版本同时运行

我要问的是关于内核的问题。我不知道内核是如何工作的,也不知道它多久更新一次。但是我想知道如果我在主机上得到内核更新,我的docker映像是否会停止运行

因此,基本上,我熟悉虚拟机,只要有x86 CPU、RAM和HDD,您的虚拟机就可以工作,并且不会因任何主机操作系统更新而中断

但是对于Docker来说,我是否应该担心在几年后linux内核经过一些更新后,我的Docker映像/容器将不再工作?如果在具有较新内核的主机上重新编译Docker容器中的某些代码,该映像/容器是否不会在具有较旧内核的主机上运行

几年后,linux内核进行了一些更新, 我的Docker图像/容器不再工作了

Linux作为内核,永远不会破坏用户空间应用程序。 多年来一直如此,他们没有计划改变这种状况

事实上,大多数应用程序几乎从不与内核“对话”,也从未链接到内核,除非它们需要访问真正低级的东西

相反,应用程序使用提供所有基本系统调用和函数的
libc
(请参阅)

如果对
libc
进行重大更新,则此库不会在主机和容器之间共享,而是嵌入到容器中


这意味着出于安全原因,您可以(也应该)在主机上应用任何可用的内核更新。您还应该确保您的集装箱包装是最新的。

谢谢,看来在可预见的未来,Docker将成为一种标准的生活方式我想是的。。。未来几年的“下一件大事”是,我在docker和boot2docker上分别遇到了jdk 1.0和postgres 6.5等老应用程序的故障,其中libc5在debian 2.1 slink中,debian 2.2 potato中。你确定我的现代主机的内核不是问题吗?