我想了解Docker文件中的" FROM命令"有点深。 例: 我在我的centos上安装了docker。 现在我写了一个像这样的docker文件 来自:ubuntu ----文件继续--- -------- 在上面的场景中,FROM的用途是什么? Docker容器将首先下载ubuntu操作系统并在我的ubuntu或centos上运行我的应用程序?
我在这里有点困惑,有人可以解释一下这个吗?
答案 0 :(得分:0)
Dockerfile指令FROM表示当你执行
时 docker build .
使用此Dockerfile,将使用图像ubuntu:latest。
所以你要么在本地拥有它,所以
docker images ubuntu
会显示它
或使用
构建新图像时下载 FROM ubuntu
是的,Docker会自动下载您在Dockerfile中指定的基本映像
参考文档
答案 1 :(得分:0)
FROM指令为后续指令设置基本映像。因此,有效的Dockerfile必须将FROM作为其第一条指令。
所以它是Dockerfile中的第一条指令,必须存在;它告诉Docker哪个是基本图像,所有后续指令都将在其上发生。把它想象成一个(懒惰)厨师要放入烤箱的披萨的基础。厨师从商店购买比萨饼基地,然后添加厨师想要的任何东西,烤箱,厨师将有一个煮熟的比萨饼。
现在要理解的重要一点是,如果您的基本映像是ubuntu,那么您最终不会使用“ubuntu OS”下载,而是使用(更小)Ubuntu文件系统的快照,引用this Quora answer:
所以[n] Ubuntu基本映像就像是Ubuntu文件系统的快照。因此它没有像完全成熟的虚拟机管理程序那样安装所有驱动程序。
它基本上是Linux内核顶部/周围的目录,二进制文件,配置文件等。
回到披萨比喻(因为:好玩),你的Docker主机就是烤箱 - 它有烹饪披萨所需的所有功能。因此,如果您的烤箱具有花哨的自动清洁功能,那么无论厨师烹饪比萨饼也可以使用。
如果您还没有注意到,则不必使用直接操作系统映像,也可以使用以应用程序为中心的映像。所以,如果你正在构建Python,那就有一个python图像。如果你正在做Ruby,那就是红宝石形象。
最后,我强烈建议您继续挖掘有关Docker或LXC容器的更多信息。
要获得深入的描述,请阅读Docker的Images and Containers说明。