Docker Buildx 多平台镜像构建
docker buildx 基于 BuildKit 构建镜像,支持多平台、构建缓存和多种输出。它通过 builder 实例管理构建环境,默认的 docker driver 功能有限。
docker buildx version
docker buildx create --name multi --driver docker-container --use
docker buildx inspect --bootstrap
docker buildx ls
docker buildx build -t app:latest .
docker buildx build --platform linux/amd64,linux/arm64 \
-t registry.example.com/app:1.0 --push .
docker buildx build --platform linux/amd64 -t app:dev --load .
docker buildx build --cache-to type=registry,ref=registry.example.com/app:cache \
--cache-from type=registry,ref=registry.example.com/app:cache \
-t app:1.0 --push .
docker buildx imagetools inspect registry.example.com/app:1.0
docker buildx rm multi
--load 到本地;要么 --push,要么输出到 OCI/目录。docker-container driver。inspect --bootstrap;镜像没拉下来时构建会卡住。--push 失败先看 docker login。--platform 和基础镜像的架构要匹配;否则运行时会报 exec format error。docker-compose — 本地编排buildctl — 直接调用 BuildKitcrane / regctl — 镜像搬运与检查