2014-11-25 101 views

回答

4

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

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

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

+0

另外系统架构是一个限制。例如,x86_64映像不会在ARM上运行。 I.E.你不会在Raspberry PI上运行官方的Ubuntu镜像。 – chadrien 2014-11-25 08:46:24

5

是的。这是码头工人的主要想法。

它在chrooted env中创建了一个“静态容器”,它能够在任何linux上运行,因为图像中包含了所有需要的用户空间依赖关系。由于Linux(内核)在系统调用及其调用方案上保持向后兼容性,因此这个想法可以跨越各种版本甚至不同的Linux发行版。

当然,源和目标系统上的二进制体系结构(比如amd64)需要相同。

相关问题