阅读一些PPT,似乎一个容器可以在不同的Linux供应商上运行。是真的吗?
答案 0 :(得分:6)
是。这是码头工人的主要想法。
它创建了一个静态容器"在一个能够在任何Linux上运行的chrooted env中,因为图像中包含所有必需的用户区依赖性。
由于linux(内核)保持了对系统调用及其调用方案的向后兼容性,因此该想法可以跨版本甚至不同的Linux发行版工作。
当然,源系统和目标系统上的二进制架构(比如amd64)需要相同。
答案 1 :(得分:5)
是的,对于大多数应用程序,这都有效。内核是您实际运行的任何内容(在您的示例中为RedHat),而用户空间由容器(Ubuntu)提供。
大多数Linux内核变体都非常相似,应用程序不会注意到。但是,如果代码依赖于内核中不存在的特定内容,那么Docker无法帮助您。
在编写本文时,Docker本身依赖于某些最小内核功能,版本3.8。 https://docs.docker.com/engine/installation/binaries/