使用 docker buildx 构建多CPU架构镜像

环境组件
版本

操作系统

Rocky Linux 8.5

CPU 架构

x86_64

Docker

20.10.12

Harbor

v2.3.2

Kubernetes (可选)

1.22.2

创建多平台构建器

docker buildx create --name multi-platform --use --platform linux/amd64,linux/arm64 --driver docker-container

创建单机容器多平台构建器(与k8s构建器二选一)

启用多CPU架构静态编译环境

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

创建单机窗口多平台构建器并默认使用

docker buildx create --use --name mybuilder

启动并查看构建器

docker buildx inspect mybuilder --bootstrap

Name:   mybuilder
Driver: docker-container

Nodes:
Name:      mybuilder0
Endpoint:  unix:///var/run/docker.sock
Status:    running
Platforms: linux/amd64, linux/arm64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6, linux/riscv64, linux/mips64le, linux/mips64

创建k8s多平台构建器(与单机容器构建器二选一)

准备k8s环境

登录master主机创建k8s多平台构建器并默认使用

启动并查看构建器

构建多平台构建并推送到仓库

准备 Dockerfile

登录镜像仓库

注意:harbor 2.x 以后才支持多CPU架构构建共存

执行构建并推送到仓库

参考:

https://docs.docker.com/engine/reference/commandline/buildx_create/

https://github.com/docker/buildx/issues/495

Last updated

Was this helpful?