构建上下文大小会影响图像大小吗?

pla*_*etp 6 docker docker-build docker-daemon

当我构建图像时,docker build输出包含上下文大小,例如:

Sending build context to Docker daemon  1.315GB
[...]
Successfully built a9ec4d33e12e
Run Code Online (Sandbox Code Playgroud)

这个尺寸会影响最终图像的尺寸吗?我应该设法减少它吗?

Joh*_*ica 5

当您运行时,docker build它会将 目录和所有子目录中的所有文件发送Dockerfile到 Docker 守护进程。它这样做的前提是您Dockerfile可能会引用所有这些文件,但请注意,它不会检查您Dockerfile以确定要发送哪些文件。它只是发送所有内容。

有几种方法可以减少构建上下文的大小:

  • 将您的Dockerfile文件放在自己的目录中,仅包含它需要的文件。例如,不要将 放在Dockerfile项目的顶层,而是将其放在自己的子目录中。

  • 编写一个.dockerignore文件,列出要从构建上下文中排除的文件。当您无法将文件移开时,这是下一个最好的选择。

这个尺寸会影响最终图像的尺寸吗?

是和不是。过大的构建上下文不会增加图像大小。构建上下文中未使用的额外文件Dockerfile将被简单地丢弃。

但是,如果您.dockerignore忽略确实使用的文件Dockerfile,则可能会减小图像大小(并可能会破坏它)。COPY . /app例如,忽略文件将导致复制更少的文件。

我应该设法减少它吗?

是的。它将加快构建过程。


wot*_*nii 4

这个尺寸会影响最终图像的尺寸吗?

我应该设法减少它吗?

是的。它节省了构建图像的时间。

来源:

https://medium.com/better-programming/docker-tips-about-the-build-context-dbc76505e178