docker中的buildx是什么, 它有什么用?

156 阅读1分钟

buildx 是 Docker 官方提供的一个 CLI 插件,用来扩展 docker build 命令,底层调用高性能构建引擎 BuildKit,从而支持多平台镜像并行构建、分布式缓存、构建集群等高级功能。主要特点包括:

  1. 多架构/多平台构建
    可在 x86_64 主机上一次命令同时构建 linux/amd64、linux/arm64、linux/arm/v7 等架构镜像,并自动输出合并的 manifest list。

  2. 多种驱动(driver)

    • docker 驱动:直接复用本地守护进程,体验与旧版 docker build 最接近。
    • docker-container 驱动:启动持久化的 BuildKit 容器,支持完整功能(多平台、缓存导出等)。
    • kubernetes 驱动:把构建任务下发到 K8s 集群,实现横向扩展。
    • remote 驱动:连接外部的 BuildKit 服务。
  3. 构建器(builder)实例
    通过 docker buildx create 可创建互相隔离的构建器,方便为不同项目或 CI 任务分配独立环境,并可随时 use 切换。

  4. 并行与缓存
    BuildKit 的 DAG 并行执行、缓存导入/导出、内联缓存等特性在 buildx 中默认可用,显著加快重复构建速度。

  5. 高级构建语法
    支持 docker buildx bake 通过 HCL/JSON 文件定义多镜像、多平台、多参数的批量构建流程,类似 Makefile 但更贴合镜像场景。

  6. 安装与使用条件

    • Docker Engine ≥ 19.03(推荐 20.10+)
    • Windows/macOS 的 Docker Desktop 已内置;Linux 需安装 docker-buildx-plugin 包或下载官方二进制。

一句话总结:buildx 就是“BuildKit 的 Docker 命令行前端”,让你像平时 docker build 一样,同时又能享受多平台、并行、缓存、远程构建等现代化能力。