一、前言
最近接了ARM架构的容器化项目,于是乎新的需求出现了,同一个服务需要构建对应CPU架构的镜像,先前人是单独用ARM的机器编译,但是不优雅且重复性劳动,维护起来累.
#二、 探索buildx
#2.1 启动buildx
在
Docker 19.03+
版本中可以使用docker buildx
build 命令使用BuildKit
构建镜像
#2.2 查看docker buildx是否已开启
低版本的docker默认是没有开启的,手动开启下,export DOCKER_CLI_EXPERIMENTAL=enabled
高版本的docker默认是开启buildx,如图
#三、启用buildx
#3.1 指定buildx 构建器
由于 Docker 默认的 builder 实例不支持同时指定多个 --platform ,我们必须首先创建一个新的 builder 实例并切换到指定名称的 buildx 构建器
#3.2 构建多架构镜像
#
3.3查看某个多架构镜像的信息
上面的图可以清晰的看到同时构建了ARM64和AMD64的镜像,可以使用
docker manifest inspect
查看相关信息
[root@iZj6c261538xjcb56g6iv4Z demo]# docker manifest inspect registry.cn-hangzhou.aliyuncs.com/s-ops/demo:v1
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 863,
"digest": "sha256:d93ef783d103a776ab5cf32aa7da942aefec1863a22b6879ab3f7c452a658290",
"platform": {
"architecture": "arm64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 863,
"digest": "sha256:0dc9bfb5b8e23e445b1e854d5e626d3dcbf7bdb845c1b79aa6c67fc323ade86b",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 566,
"digest": "sha256:26f1b2d7d10d9222e2646bde1ff9df2dda7ede956a53d6454ae5aa6ee8d422a6",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 566,
"digest": "sha256:8e5e4fa92a2a2cdc3c1a7dd0346af19c597e3c286f16d7aff9473403df508faa",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
}
]
}
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/7842.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~