Docker 中的主机-来宾操作系统版本兼容性是否有限制?

Max*_*axB 6 linux-kernel docker

Docker 允许主机 Linux 发行版与来宾 Linux 发行版不同。

这种兼容性有限制吗?您能否在内核较旧的主机上运行最近的 Ubuntu 客户机?

yam*_*enk 6

Docker 允许主机 Linux 发行版与来宾 Linux 发行版不同。

明确地说,运行 Docker 容器时没有来宾 Linux 发行版。Docker 容器不是 Linux 操作系统。

ubuntu、centos 等 Docker 镜像不是操作系统。它们只是“模仿”操作系统发行版的图像,因为它们具有非常相似的文件系统结构和可用工具,您通常可以在 Ubuntu 或 Centos 等操作系统发行版上找到这些工具。这些图像没有自己的内核打包在里面。

如果您想知道是否可以ubuntu:16.04在一台机器上运行 Docker 镜像,ubuntu:14.04答案是肯定的。此外,与其他图像一般不应该有任何兼容性问题。

现在,由于内核不是映像的一部分,因此可以创建一个 Docker 映像,它可以在一个内核版本上运行而在另一个内核版本上失败。例如,您可以请求在旧内核版本中可能不存在的系统调用。

但是,这个问题并不是由 docker 引起的,而是与容器内部运行的软件的兼容性问题。

最后,如果你在一台机器上运行 Docker,你至少会有一个不是很旧的内核版本 3.10。因此不太可能遇到任何此类限制。

  • Ubuntu 16.04 包含 30,000 多个软件包。难道至少其中一些可能会利用 14.04 中不可用的内核功能吗? (6认同)