buildx技术特点&使用指南

Buildx 是基于 BuildKit 的 Docker 扩展插件项目。Buildx 默认使用 BuildKit 引擎进行构建,本质上调用了 Buildkit 的 API,构建过程是在 Buildkit 的环境中进行的,因此,首先介绍BuildKit。

BuildKit

开源项目: https://github.com/moby/buildkit

BuildKit 是源自 Docker 的 Moby 项目的第二代镜像构建工具。它可以将构建步骤转换成其低级构建器(LLB)表示形式,BuildKit 可用于构建任何制品(artifact)而不仅仅是容器镜像。我们主要在这里关注容器镜像的构建。

请注意,Docker 版本低于 18.09,BuildKit 无法使用,建议使用旧版Docker Daemon进行镜像构建。相比于 Docker Daemon build,BuildKit 具有以下优势:

  • 更高效:支持并行的多阶段构建、更好的缓存管理;

Docker 本身提供的构建使 Dockerfile 指令只能顺序执行,引入多阶段构建之后,便可以将同一 Dockerfile 中的构建步骤按逻辑分组进行。BuildKit 会创建一个构建步骤之间的依赖关系图,并使用它来决定构建中的哪些步骤省略,哪些可以并行执行;哪些需要顺序执行。

BuildKit 提供构建缓存导入和导出,允许将构建缓存推送到远程镜像仓库。而且,BuildKit 可以灵活地将缓存嵌入到镜像中(内联)并将它们一起推送,或者可以将它们单独推送。缓存也可以导出到本地目录以供以后使用。Buildkit 支持 layer 级别缓存&

你可能感兴趣的:(docker)