我应该在Docker中构建OS吗?

时间:2018-10-28 09:31:46

标签: linux docker

我正在为php + apache上的简单项目创建环境,而我是docker的新手。 我没有建立像alpine + LAMP之类的东西之间的区别 或仅构建一个LAMP,所有运行Ubuntu的计算机。我需要一个操作系统吗?

1 个答案:

答案 0 :(得分:2)

是的。您需要一个操作系统(实际上,它不是完整的操作系统。我将在后面解释)。为什么?好,让我解释一下。

  1. 使用Docker运行应用程序时,您正在容器中运行此应用程序。
  2. 此容器不使用您的OS文件系统和库。相反,它使用syscall与内核直接通信。

现在的问题是,您的应用程序将在哪里获得运行所需的文件系统和库?

此处,基本操作系统(即高山图像)开始发挥作用。此基本映像不是完整的linux OS。它没有内核。它提供了一个文件系统和一些必要的库来运行您的应用程序。

UPD:但是,您可以构建不需要任何基本OS映像的docker映像(来自scratch)。但是它要求您的应用程序必须静态编译,这意味着它在二进制文件中包含运行该应用程序所需的所有必需库。