基于Ubuntu的Docker镜像可以在Redhat上运行吗?

阅读一些PPT,似乎一个容器可以运行在不同的Linux供应商。 是真的吗?

是。 这是docker的主要思想。

它在chrooted env中创build了一个“静态容器”,可以在任何linux上运行,因为图像中包含了所有需要的用户空间依赖关系。

由于Linux(内核)在系统调用和调用scheme上保持向后兼容性,因此这个想法可以在不同的版本甚至不同的Linux版本上运行。

当然,二进制体系结构(比如amd64)在源系统和目标系统上需要保持一致。

是的,对于大多数应用程序来说, 内核是你正在运行的任何东西(在你的例子中是RedHat),而用户空间是由容器(Ubuntu)提供的。

大多数Linux内核变体足够相似,应用程序不会注意到。 但是,如果代码依赖于内核中不存在的特定内容,Docker不能帮助您。

Docker本身在编写本文时依赖于某些最小内核特性,即3.8版本。 https://docs.docker.com/engine/installation/binaries/