从Docker文件中的命令

我想深入了解“在Docker文件中的FROM命令”。 例如:我已经在我的centos上安装了docker。 现在我写了一个像FROM这样的docker文件:ubuntu —-文件继续— ——–在上面的场景中,FROM有什么用? Docker容器将首先下载Ubuntu操作系统,并在我的Ubuntu或Centos上运行我的应用程序?

我在这里有点困惑,有人能解释一下这个FROM吗?

Dockerfile指令FROM意味着当你这样做

docker build .

使用这个Dockerfile,图像ubuntu:latest,将被使用。

所以,无论你在本地是如何,所以

docker images ubuntu

将显示它

或者当您使用build立新的图像时,它将被下载

FROM ubuntu

是的,Docker会自动下载您在Dockerfile中指定的基础映像

参考文件

https://docs.docker.com/engine/reference/builder/#from

从Dockerfile文档 :

FROM指令为后续指令设置基本映像。 因此,有效的Dockerfile必须具有FROM作为其第一条指令。

所以这是Dockerfile中的第一条指令,必须存在; 它会告诉Docker,这是所有后续指令将要发生的基础映像。 把它想成一个(懒惰的)厨师要放入烤箱的比萨饼的基地。 厨师从商店购买比萨基地,然后添加任何厨师想要的顶部,并与烤箱,厨师将有一个煮熟的比萨饼。

现在需要了解的重要一点是,如果你的基本映像是ubuntu,那么你不会最终得到下载的“Ubuntu操作系统”,而是一个Ubuntu文件系统的(更小的)快照,引用这个Quora答案 :

所以一个[n] Ubuntu的基本映像就像是一个Ubuntu文件系统的快照。 所以它没有安装所有驱动程序就像一个完整的pipe理程序。

它基本上是Linux内核的顶部/周围的目录,二进制文件,configuration文件等。

回到披萨比喻(因为:好玩),你的Docker主机就是烤箱 – 它有制作披萨所需的所有强壮的东西。 所以,如果你的烤箱有一个奇特的自我清洁function,那么任何厨师正在做比萨饼也将有机会获得。

如果您还没有注意到,您不必使用直接的操作系统映像,也可以使用应用程序集中的映像。 所以,如果你正在构buildPython,那么就有一个Python图像。 如果你在做Ruby,那就是一个ruby图像。

最后,我强烈推荐挖掘Docker或LXC容器的更多信息。

有关深入的描述,请阅读Docker的“ 图像和容器”说明。