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

标签 linux linux-kernel virtual-machine docker

我是 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/

相关文章:

linux - 写入端口 0cf8h 失败并出现段错误

linux - 在 Eclipse Linux 中安装 SableCC

linux - 修改每个节点的核心转储磁盘空间利用率

Linux:从用户空间实例化:eeprom new_device

virtual-machine - 将物理网卡绑定(bind)到 docker 容器

linux - 使用 libevent2 处理文件 I/O 时出现问题

linux - 我需要找出我的 Ubuntu 上安装了哪些补丁

linux - ptrace 和线程

sql-server - Azure VM 上 SQL Server 的连接字符串

python - 没有这样的文件或目录 : 'gs' linux