没有主机操作系统运行docker?

时间:2017-09-18 17:36:10

标签: docker

我是否有可能在没有任何主机操作系统的情况下运行docker。我的意思是本地运行它。如果可能的话,这将是一种性能提升。

假设我有一个在linux内核上运行的工具。我创建了一个具有一些额外依赖关系的docker容器。现在我与其他拥有linux运行该容器的人共享该容器。

但我想在没有主机操作系统的情况下运行该容器。因为它将是带有容器的双层操作系统。

1 个答案:

答案 0 :(得分:2)

Docker本身不是VM,因此没有双层OS。 Docker是一个运行应用程序的工具,其设置可以将它们与运行在同一OS内核上的其他应用程序隔离开来。 Docker确实包含一个带有Docker for Windows和Docker for Mac的VM来运行Linux内核,因此您可以运行Linux容器。有一个选项可以使用Server 2016运行本机Windows容器,但如果您正在寻找最低限度和效率,我建议您寻找其他地方。

最接近你要找的东西是:

  • Unikernels:这些是编译到内核中的应用程序,其他所有内容都被删除,旨在在VM内部运行,以执行非常专业的任务,通常与安全相关。这些仍处于开发阶段的早期阶段,但Docker确实在其项目中使用了一些技术。

  • LinuxKit(Moby项目的一部分):这就是Docker为Docker for Windows和Docker for Mac创建虚拟机的方式。它是一个基于容器的Linux操作系统,您可以只使用要运行的容器进行自定义编译。其中大部分重点仍然是针对VM设计的,但裸机是一种选择。

  • Scratch base image:如果静态编译应用程序以删除所有库依赖项,则可以使用没有任何shell或其他OS工具的容器。这通常出现在作为Docker容器发布的Go二进制文件中,以执行具有非常小的攻击面的单个任务。作为Docker容器,它仍然需要底层Linux操作系统来运行二进制文件。