Docker CLI 插件,基于 BuildKit 扩展 docker build 的构建能力,支持多构建器与多平台镜像。
moby/buildkit
一个并发、缓存高效的构建工具包,可将源码转换为构建产物,是 Docker 构建所使用的底层引擎。
- Star
- 10,377
- Fork
- 1,565
- 未关闭 Issue
- 835
- 最近提交
- 昨天
这是什么?
BuildKit 是一个把源代码转换为构建产物的工具包,目标是高效、可表达、可重复地完成构建。它由 buildkitd 守护进程和 buildctl 客户端组成,构建过程使用名为 LLB 的二进制中间格式描述依赖图,因此互不依赖的步骤可以并发执行,并且可以逐条指令缓存结果。
BuildKit 不绑定 Dockerfile。Dockerfile 支持由前端(frontend)提供,其他构建语言如 YAML、Starlark 或基于 Python 的定义也可以实现为前端。产物可以输出到镜像仓库、containerd 镜像存储、本地目录,以及 Docker、OCI 或 tar 格式。缓存支持通过内联元数据、镜像仓库、本地目录、GitHub Actions、S3 和 Azure Blob Storage 导入导出。
守护进程支持 OCI(runc)和 containerd 两种 worker,可以在非 root 权限下运行,gRPC 接口可通过 Unix socket 或带 mTLS 的 TCP 暴露。Docker Buildx 和 Docker Engine 都基于它构建镜像。
核心功能
- 01基于 LLB 依赖图并发执行互不依赖的构建步骤
- 02指令级构建缓存,可导入导出到镜像仓库、本地目录、GitHub Actions、S3 和 Azure Blob Storage
- 03可插拔前端,支持 Dockerfile 以及基于 gateway 的外部前端
- 04多种输出格式:镜像仓库、containerd 镜像存储、本地文件、Docker、OCI 和 tar
- 05支持多平台构建和无 root 权限运行
- 06自动回收构建缓存
适用场景
- 在 Linux 服务器或 Kubernetes 集群中运行独立的构建守护进程
- 在 CI 流水线中通过镜像仓库或 S3 共享缓存来构建容器镜像
- 基于 LLB 为非 Dockerfile 工作流定义自定义构建语言
- 输出测试报告、二进制文件等本地构建产物,而非容器镜像
快速上手
- 1
从发布页面下载最新二进制文件
- 2
在 Linux 上以 root 身份启动 buildkitd 守护进程
sudo buildkitd - 3
使用 dockerfile.v0 前端通过 buildctl 构建 Dockerfile
buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
使用前须知
- buildkitd 守护进程仅支持 Linux 和 Windows,不支持 macOS。
- 启动守护进程通常需要 root 权限,无根模式需要额外配置。
- macOS 的 Homebrew 配方是非官方版本,且不包含守护进程。
收录于专题
标签
常见问题
- buildkit 是什么?
- 一个并发、缓存高效的构建工具包,可将源码转换为构建产物,是 Docker 构建所使用的底层引擎。 BuildKit 是一个把源代码转换为构建产物的工具包,目标是高效、可表达、可重复地完成构建。它由 buildkitd 守护进程和 buildctl 客户端组成,构建过程使用名为 LLB 的二进制中间格式描述依赖图,因此互不依赖的步骤可以并发执行,并且可以逐条指令缓存结果。
- buildkit 可以免费使用吗?用的什么许可证?
- buildkit 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- buildkit 还在维护吗?
- 活跃维护中。buildkit 最近一次提交是在 2026年11月6日。
- buildkit 适合用来做什么?
- 在 Linux 服务器或 Kubernetes 集群中运行独立的构建守护进程 在 CI 流水线中通过镜像仓库或 S3 共享缓存来构建容器镜像 基于 LLB 为非 Dockerfile 工作流定义自定义构建语言 输出测试报告、二进制文件等本地构建产物,而非容器镜像
- buildkit 怎么安装和运行?
- 从发布页面下载最新二进制文件 在 Linux 上以 root 身份启动 buildkitd 守护进程: sudo buildkitd 使用 dockerfile.v0 前端通过 buildctl 构建 Dockerfile: buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
- 在哪里获取 buildkit?
- 源代码和安装说明在 GitHub 上:https://github.com/moby/buildkit
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用于在 Bazel 中构建 OCI 容器镜像的规则集,支持浅层拉取基础镜像、层去重和减少本地数据传输的推送策略。
面向 Dockerfile 构建的交互式调试器,支持断点、单步执行和进入构建步骤的 Shell。
基于 Docker 的工具,用于托管、构建、微调和打包开源大模型,并提供 OpenAI 兼容接口。
可编程的自动化引擎,基于容器构建、测试和发布代码,可在本地、CI 或云端运行。
面向 TypeScript 与多语言代码库的 Monorepo 构建平台,缓存未变更的任务并只运行受影响的部分。