引言 多阶段构建方式,是在Dockerfile中使用多个FROM指令,每个FORM指令都是一个新的构建阶段,并且可以方便地复制之前阶段的构件。让我们来看一个简单的Go程序。代码如下。 点击此处
引言多阶段构建方式,是在 Dockerfile 中使用多个 FROM 指令,每个 FORM 指令都是一个新的构建阶段,并且可以方便地复制之前阶段的构件。让我们来看一个简单的 Go 程序。代码如下。 点击此处您可以获取代码。 构建 Docker 镜像让我们来为它构建 Docker 镜像,Dockerfile 文件内容如下。
完成后,我们得到了一个 359 MB大小的镜像。 现在让我们构建相同的程序,但使用多阶段构建:
完成后,我们居然得到了一个只有 12 MB 大小的 Docker 镜像。还不错,我们把镜像大小减少了约 30 倍。我们是如何完成的呢? 在第一种情况,使用单阶段构建,Docker 镜像中包含了以下内容。
在第二种情况,我们先编译并构建了应用程序,然后将已经编译的结果复制到最后一个阶段。
是否可以再减小 Docker 镜像的大小?答案是:能。但为此我们需要使用 Docker Scratch -- 它是一个 0 MB 的 Docker 镜像。
完成后,我们的镜像大小为 6.66 MB。 |
2022-04-28
2022-04-21
2022-05-13
2022-08-17
2022-02-25