使用 docker buildx 构建多架构多平台 Docker 镜像

前置准备

查看 buildx 版本

docker buildx version

# 如果不可用,则需启用 buildx
export DOCKER_CLI_EXPERIMENTAL=enabled

启用 binfmt_misc

docker run --privileged --rm docker.io/tonistiigi/binfmt:latest --install all

# 检查 QEMU 处理程序以验证设置是否正确
ls -al /proc/sys/fs/binfmt_misc/

# 也可以验证指定架构的处理程序是否已启用
cat /proc/sys/fs/binfmt_misc/qemu-aarch64

将默认 Docker 镜像构建器切换为 buildx

# 创建构建器 mybuilder
docker buildx create --name mybuilder

# 使用构建器 mybuilder
docker buildx use mybuilder

# 启动构建器
docker buildx inspect mybuilder --bootstrap

# 验证指定构建器是否已启用
docker buildx ls

开始构建

登录镜像仓库

docker login docker.io -u sample-user -p sample-user-token

构建镜像

docker.io/sample-user/sample-project 为镜像仓库完整地址

latest 为镜像标签

--push 为构建完成自动推送

docker buildx build -t=docker.io/sample-user/sample-project:latest --platform=linux/386,linux/amd64,linux/arm,linux/arm64,linux/s390x,linux/riscv64,linux/ppc64le,linux/mips64,linux/mips64le . --push

清理

docker buildx stop
docker buildx rm mybuilder

添加新评论