📅  最后修改于: 2023-12-03 14:40:48.799000             🧑  作者: Mango
Docker Buildx 是 Docker 官方开源的一个插件,通过 Buildx,我们可以轻松的构建多种不同架构的 Docker 镜像,从而满足不同终端设备的需求。
在 Docker 19.03 版本以后,Buildx 已经默认集成在了 Docker Engine 中,可以通过以下命令检查其是否安装成功:
docker buildx version
如果能够正常输出版本号,则说明已经安装成功。
在使用 Buildx 构建 Docker 镜像的时候,需要在命令中指定多个目标平台,例如构建一份同时适用于 amd64 和 arm64 架构的镜像:
docker buildx build --platform linux/amd64,linux/arm64 -t username/application:latest --push .
这里的 --platform
参数用于指定要构建的目标平台。同时我们将镜像打上了 username/application:latest
的标签,并启用了 --push
选项将其推送到了 Docker Hub 等 Registry 中。
除了在命令行中指定多个平台以外,在 Dockerfile 中也可以通过添加 FROM
指令来指定要构建的平台架构:
FROM --platform=${BUILDPLATFORM} ubuntu AS build-amd64
RUN apt-get update && apt-get install -y curl
FROM --platform=${BUILDPLATFORM} alpine AS build-arm64
RUN apk add --no-cache curl
这里我们向 Dockerfile 中添加了两个 FROM
指令,分别指定了 amd64 和 arm64 两种不同的平台,通过 --platform=${BUILDPLATFORM}
的方式获取当前选择的平台信息,从而只构建适用于当前平台的镜像。
Docker Buildx 是一个非常方便的工具,通过它我们可以轻松的构建多个不同平台架构的 Docker 镜像,并且可以在 Dockerfile 中自由的指定不同平台构建环境,从而满足不同终端设备的需求。