为什么不“docker推送”只发布Dockerfile?

该图像是从Dockerfile构build的。 因此,不是推送整个图像(至less几十MB),发布Dockerfile(通常只有KB)将节省很多空间。

由于Dockerfile可以引用本地资源(文件只存在于最初构build映像的机器上),而这些文件不在目标服务器上,因此您将尝试(并失败)到docker build相同的映像。

这些本地文件通过ADD或COPY指令包含在图像中,并且产生的图像被推送给客户使用。

一个Makefile只有几KB,为什么apt会发送巨大的.deb文件?

大多数图像(至less是“基本图像”)包含很多已经被ADD到其中的文件(例如完整的Linux发行版)。

您不能仅从Dockerfile重新创build这样的图像。

即使可以,构build过程(如编译应用程序)也可能花费大量时间,CPU,内存甚至networking访问。 当你想要的只是运行一个程序时,你不必这样做。