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

时间:2014-06-14 07:15:59

标签: linux linux-kernel virtual-machine docker

我是90%的Windows用户,但我喜欢ubuntu并将其用于ROS,opencv或python等。

对于像ROS这样的复杂应用程序,它每隔几个月推出一个新版本,Docker看起来绝对是理想的,可以并排运行多个版本。

我问的是关于内核的问题。我不知道内核是如何工作的,也不知道它的更新频率。但我想知道如果我在主机上获得内核更新,我的docker镜像是否会停止运行。

所以基本上,我熟悉一个虚拟机,只要有一个x86 CPU,RAM和硬盘驱动器,你的虚拟机就可以运行,而不会被任何主机操作系统更新所打破。

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

1 个答案:

答案 0 :(得分:6)

  

Linux内核经过一些更新后的几年内,   我的Docker图像/容器不再工作了吗?

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

事实上,除非他们需要访问真正的低级别的东西,否则大多数应用程序几乎从不会直接与内核相关联,并且永远不会链接到内核。

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

如果发生对libc的重大更新,则该库不会在主机和容器之间共享,无论如何它都会嵌入到您的容器中。

这意味着出于安全原因,您可以(并且)应用主机上可用的任何内核更新。您还应确保您的容器包保持最新。