创建 docker 多平台镜像
创建多平台镜像的方法分为两种
1、在不同平台分别创建并推送镜像到 Docker Hub,然后通过
docker manifest
将多个平台镜像合并
2、通过docker buildx
在一台机器上创建并推送多个平台的镜像
一、使用 docker manifest
假设 Docker Hub 上已经存在多个平台的镜像标签(username/nginx:1.21-amd64
,username/nginx:1.21-arm64
)
1、合并
1 | docker manifest create username/nginx:1.21 \ |
2、推送
1 | docker manifest push username/nginx:1.21 |
3、检查
合并且推送完成后,到 Docker Hub 上查看nginx:1.21
标签已经包含多个平台架构
1 | # 展示镜像的元数据,包括支持的平台架构信息 |
二、使用 docker buildx
docker buildx 是官方提供的一个插件,支持创建多平台 docker 镜像
1 | # 查看 docker buildx 版本 |
1、查看构建器列表
1 | #默认已经运行 docker 驱动的构建器,但不支持多平台构建 |
2、创建新的构建器,支持多平台构建(docker-container 驱动)
1 | # 创建名称为 diybuilder 的构建器并启动 |
3、创建并推送镜像
1 | docker buildx build --platform linux/amd64,linux/arm64 -t username/nginx:1.21 --push . |
4、检查
1 | # 展示镜像的元数据,包括支持的平台架构信息 |
最后在不同平台创建容器,并查看容器架构
1 | # 返回容器的架构 x86_64 或 aarch64 |