Docker Buildx 是 Docker 官方推出的一个实验性功能,它支持构建、标记和推送多平台镜像。
下面展示如何为一个 Docker 镜像同时构建并上传 arm64 和 amd64 两个架构的版本:
第 1 步:准备你的 Docker 环境
首先,确保你的 Docker 版本是最新的,并且已经开启了实验性功能(experimental features)。可以通过修改 Docker 的配置文件或设置环境变量 DOCKER_CLI_EXPERIMENTAL=enabled
来启用。
export DOCKER_CLI_EXPERIMENTAL=enabled
第 2 步:设置并启动 Buildx
安装并使用 Buildx。如果没有安装,可以从 Docker 官方 GitHub 仓库下载。
docker buildx create --name mybuilder --use
docker buildx inspect --bootstrap
第 3 步:登录到 Docker Hub
在上传镜像前,需要登录到 Docker Hub 或其他镜像仓库。
docker login
第 4 步:编写 Dockerfile
确保你的 Dockerfile 可以在不同架构上编译。在某些情况下,你可能需要根据架构提供特定的指令或依赖。
第 5 步:构建并推送镜像
使用 docker buildx build
命令构建并推送镜像到仓库。这里需要指定多个平台。
docker buildx build --platform linux/amd64,linux/arm64 -t username/repository:tag --push .
这条命令将会构建镜像适用于 amd64
和 arm64
两种架构,并将构建的镜像推送到指定的远端仓库(这里使用的是 Docker Hub,username/repository
需要替换为你的用户名和仓库名)。请注意,tag
可以是如 latest
或其他版本号。
第 6 步:检查镜像
构建并推送完成后,你可以到 Docker Hub 上检查镜像是否正确标记了多个架构。
docker manifest inspect username/repository:tag
这个命令将展示镜像的元数据,包括它支持的架构。