docker 不同架构镜像融合问题解决

1、背景

docker 作为目前容器的标准之一,但是对于多种架构的平台的混合编译支撑不是很好。因此衍生了镜像融合,分别将多种不同的架构构建好,然后将镜像进行融合上传。拉取镜像的会根据当前系统的架构拉取不同的镜像,也可以通过 --platform 指定什么类型的架构。

2、处理流程

注意:这里使用的 http 类型的 harbar 服务,如果不是请去除参数 --insecure

bash 复制代码
# 构建 arm 镜像
docker build -t registry.xx/public/test-arm:v1.0 -f test-arm.Dockerfile
# 构建 amd 镜像
docker build -t registry.xx/public/test-amd:v1.0 -f test-amd.Dockerfile
# 镜像融合
docker manifest create --insecure --amend registry.xx/public/test:v1.0 registry.xx/public/test-arm:v1.0 registry.xx/public/test-amd:v1.0
# 镜像上传
docker manifest push --insecure registry.xx/public/test:v1.0

3、问题

3.1 docker manifest create is only supported on a Docker cli with experimental cli features enabled

需要开启参数 experimental,只有 docker v20.xx.xx 版本之前的需要,后续版本默认开启该参数。

需要在两个地方加上参数

bash 复制代码
[root~]# cat /etc/docker/daemon.json
{
    
    "insecure-registries" : ["registry.xx"],
    "experimental": true
}

[root~]# cat ~/.docker/config.json
{
	"auths": {
		"registry.xx": {
			"auth": "xxxxxx"
		}
	},
	"experimental": "enabled"
}[ro

3.2 failed to configure transport: error pinging v2 registry: Get https://registry.xx/v2/: http: server gave HTTP response to HTTPS client

如果使用的是 https 的 harbor 则没有下面问题

docker 20.xx.xx 版本存在如下bug

https://github.com/docker/cli/pull/2376

请将docker 版本升级到 20.xx.xx 或者以上

相关推荐
人间凡尔赛11 小时前
WAIC 2026 落幕,AI Agent 开发已进入 Harness 架构时代
人工智能·架构
极客侃科技11 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
晏宁科技YaningAI11 小时前
VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析
网络·人工智能·架构·系统架构·信息与通信
剑之所向12 小时前
前后端分离架构
架构
延凡科技12 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
生活爱好者!14 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
java_logo15 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
MC皮蛋侠客15 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
大鱼>16 小时前
深入Real-ESRGAN架构:RRDBNet设计精髓与ONNX/TensorRT部署优化
人工智能·深度学习·架构
xexpertS17 小时前
分布式系统过载治理:如何通过较小服务控制请求节奏
微服务·自动化