轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
tonistiigi/buildkit
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

buildkit Docker 镜像下载 - 轩辕镜像

buildkit 镜像详细信息和使用指南

buildkit 镜像标签列表和版本信息

buildkit 镜像拉取命令和加速下载

buildkit 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

buildkit
tonistiigi/buildkit

buildkit 镜像详细信息

buildkit 镜像标签列表

buildkit 镜像使用说明

buildkit 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

BuildKit是Moby项目的高效容器镜像构建工具,具备高性能、可扩展性及构建优化特性,用于快速构建容器镜像。
3 收藏0 次下载activetonistiigi镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

buildkit 镜像详细说明

buildkit 使用指南

buildkit 配置说明

buildkit 官方文档

BuildKit 技术文档

镜像概述和主要用途

BuildKit 是一个工具包,用于以高效、可表达且可重复的方式将源代码转换为构建产物。它提供了先进的构建能力,支持复杂的依赖管理、高效缓存和多格式输出,旨在替代传统构建工具,优化容器镜像及其他构建产物的构建流程。

核心功能和特性

  • 自动垃圾回收:自动管理构建过程中产生的临时资源,释放存储空间
  • 可扩展的前端格式:支持多种构建定义格式(如 Dockerfile、自定义语言)
  • 并发依赖解析:并行处理构建依赖,提升构建效率
  • 高效指令缓存:智能缓存构建步骤,避免重复计算
  • 构建缓存导入/导出:支持缓存的跨环境迁移,加速多环境构建
  • 嵌套构建任务调用:支持在构建过程中嵌套执行其他构建任务
  • 分布式工作节点:支持分布式构建,可将任务分配到多个工作节点
  • 多输出格式:支持导出为容器镜像、本地文件、OCI 规范 tar 包等多种格式
  • 可插拔架构:支持扩展工作节点后端、前端解析器等组件
  • 无 root 权限执行:支持在非 root 用户环境下运行构建任务

使用场景和适用范围

适用场景

  • 容器镜像构建(替代传统 docker build)
  • CI/CD 流水线中的自动化构建流程
  • 复杂依赖项目的多阶段构建
  • 需要高效缓存和并行构建的场景
  • 自定义构建流程(如非 Dockerfile 定义的构建逻辑)

被广泛使用的项目

  • Moby:Docker 引擎的核心组件
  • img:轻量级容器镜像构建工具
  • OpenFaaS Cloud:Serverless 平台的构建系统
  • container build interface:容器构建接口标准

安装与依赖

依赖项

  • runc:OCI 容器运行时(默认工作节点依赖)
  • containerd:容器运行时(如需使用 containerd 工作节点)

安装步骤

从源码编译安装

以下命令将 buildkitd(守护进程)和 buildctl(客户端工具)安装到 /usr/local/bin:

# 编译并安装
$ make && sudo make install

# 如需仅构建特定工作节点版本(如仅 containerd 或仅 OCI)
$ make binaries-all  # 生成 buildkitd.containerd_only 和 buildkitd.oci_only

配置与启动

启动 buildkitd 守护进程

基本启动命令

buildkitd --debug --root /var/lib/buildkit

核心参数说明

  • --debug:启用调试日志
  • --root:指定构建数据存储根目录(默认:/var/lib/buildkit)
  • --oci-worker:启用/禁用 OCI (runc) 工作节点(默认:true)
  • --containerd-worker:启用/禁用 containerd 工作节点(默认:false)

工作节点后端选择

BuildKit 支持两种工作节点后端:

  • OCI (runc):默认后端,依赖 runc
  • containerd:需手动启用,依赖 containerd

切换至 containerd 后端:

buildkitd --oci-worker=false --containerd-worker=true

基本使用方法

LLB 简介

BuildKit 构建基于名为 LLB(Low-Level Build)的二进制中间格式,用于定义构建过程中进程的依赖图。LLB 类似于 "Dockerfile 的 LLVM IR",具有以下特性:

  • 基于 Protobuf 消息序列化
  • 支持并发执行
  • 高效缓存
  • 厂商中立(支持非 Dockerfile 构建定义)

LLB 格式定义见 solver/pb/ops.proto。目前支持的 LLB 高级语言包括 Dockerfile 及自定义语言(可通过 PR 添加)。

探索 LLB 示例

通过示例脚本生成并查看 LLB 构建图:

# 生成 LLB 定义并通过 jq 格式化输出
go run examples/buildkit0/buildkit.go | buildctl debug dump-llb | jq .

# 执行构建(示例脚本支持 --with-containerd 标志添加 containerd 支持)
go run examples/buildkit0/buildkit.go | buildctl build

示例脚本说明:

  • buildkit0:仅使用 exec 操作,为每个组件定义完整阶段
  • buildkit1:分离 git 克隆步骤以提升并发度
  • buildkit2:直接使用 git 源而非 git clone,优化性能和缓存
  • buildkit3:支持本地源码路径(如 --runc=local)
  • dockerfile2llb:将 Dockerfile 转换为 LLB(调试用)
  • gobuild:演示嵌套调用生成 Go 包依赖的 LLB

使用 Dockerfile 构建

直接使用 buildctl 构建

通过 dockerfile.v0 前端解析 Dockerfile:

# 基本构建(上下文和 Dockerfile 均为当前目录)
buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.

# 指定构建目标和构建参数
buildctl build \
  --frontend=dockerfile.v0 \
  --local context=. \
  --local dockerfile=. \
  --frontend-opt target=foo \  # 指定构建目标阶段
  --frontend-opt build-arg:foo=bar  # 传递构建参数

参数说明:

  • --frontend=dockerfile.v0:使用 Dockerfile 前端
  • --local <name>=<path>:将本地路径暴露给构建器(context 为构建上下文,dockerfile 为 Dockerfile 路径)

使用 build-using-dockerfile 工具

为简化 Dockerfile 构建,可使用 build-using-dockerfile 包装工具(语法类似 docker build):

# 编译并安装工具
go build ./examples/build-using-dockerfile && sudo install build-using-dockerfile /usr/local/bin

# 基本构建
build-using-dockerfile -t myimage .

# 指定 Dockerfile 路径和标签
build-using-dockerfile -t mybuildkit -f ./hack/dockerfiles/test.Dockerfile .

# 构建后自动加载到 Docker
docker inspect myimage

构建产物导出

BuildKit 需通过导出器(Exporter)获取构建结果,支持以下导出方式:

1. 导出到 containerd

需使用 containerd 工作节点:

# 导出镜像到 containerd
buildctl build ... --exporter=image --exporter-opt name=docker.io/username/image

# 查看 containerd 中的镜像
ctr --namespace=buildkit images ls

2. 推送到镜像仓库

buildctl build ... \
  --exporter=image \
  --exporter-opt name=docker.io/username/image \  # 镜像名称(含仓库地址)
  --exporter-opt push=true  # 启用推送

注:如需认证,buildctl 会自动读取 Docker 配置文件(~/.docker/config.json)。

3. 导出到本地目录

将构建产物直接复制到客户端本地目录(适用于非容器镜像构建):

buildctl build ... --exporter=local --exporter-opt output=path/to/output-dir

4. 导出到 Docker

通过 tarball 导出并加载到 Docker:

# 导出为 Docker 兼容 tarball 并加载
buildctl build ... --exporter=docker --exporter-opt name=myimage | docker load

5. 导出为 OCI 镜像格式 tarball

# 导出到指定路径
buildctl build ... --exporter=oci --exporter-opt output=path/to/output.tar

# 导出到标准输出
buildctl build ... --exporter=oci > output.tar

容器化部署

BuildKit 可通过容器运行 buildkitd 守护进程,并通过远程客户端访问。

启动容器化 buildkitd

# 启动 buildkitd 容器(特权模式,暴露 1234 端口)
docker run -d --privileged -p 1234:1234 tonistiigi/buildkit --addr tcp://0.0.0.0:1234

# 配置客户端连接地址
export BUILDKIT_HOST=tcp://0.0.0.0:1234

# 验证客户端连接
buildctl build --help

注:tonistiigi/buildkit 镜像可通过本地构建生成,Dockerfile 路径:./hack/dockerfiles/test.Dockerfile。

高级配置

查看构建缓存

buildctl du -v  # 查看缓存使用情况(-v 显示详细信息)

显示启用的工作节点

buildctl debug workers -v  # 查看工作节点状态(-v 显示详细信息)

OpenTracing 支持

BuildKit 支持通过 OpenTracing 追踪构建过程,以 Jaeger 为例:

  1. 启动 Jaeger 容器:
docker run -d -p 6831:6831/udp -p 16686:16686 jaegertracing/all-in-one:latest
  1. 配置追踪地址:
export JAEGER_TRACE=0.0.0.0:6831  # Jaeger 收集器地址
  1. 重启 buildkitd 和 buildctl,构建任务将被追踪,可通过 [***] 查看追踪结果。

支持的 runc 版本

BuildKit 测试使用的 runc 版本与 containerd 项目一致,详情参考 containerd 的 RUNC.md。

非 root 权限运行

详情参考 docs/rootless.md。

开发与贡献

运行测试

make test  # 容器化环境中运行所有单元和集成测试

测试选项

  • 测试特定包:

    make test TESTPKGS=./client  # 仅测试 client 包
    
  • 运行特定测试(含工作节点组合):

    make test TESTPKGS=./client TESTFLAGS="--run /TestCallDiskUsage -v"
    
  • 指定工作节点后端测试:

    # 支持的后端:oci, oci-rootless, containerd, containerd-1.0
    make test TESTPKGS=./client TESTFLAGS="--run //worker=containerd -v"
    

更新依赖

# 修改 vendor.conf 后更新依赖
make vendor

提交前验证

make validate-all  # 验证代码格式、依赖等
查看更多 buildkit 相关镜像 →
moby/buildkit logo
moby/buildkit
by moby
这是一款适用于容器镜像构建的并发、缓存高效且与Dockerfile无关的构建工具包,它通过并发处理能力显著提升构建速度,借助高效缓存机制大幅减少重复计算与资源消耗,同时摆脱对Dockerfile的依赖限制,支持多样化的构建配置与场景需求,为开发者提供灵活、高效且兼容性强的容器构建解决方案。
67500M+ pulls
上次更新:12 小时前
okteto/buildkit logo
okteto/buildkit
by Okteto
认证
暂无描述
100K+ pulls
上次更新:2 天前
harness/buildkit logo
harness/buildkit
by harness
暂无描述
500K+ pulls
上次更新:16 天前
gardendev/buildkit logo
gardendev/buildkit
by gardendev
暂无描述
100K+ pulls
上次更新:2 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.