dockerhub上一些镜像OS/ARCH
支持多种芯片架构,这种multi-arch docker镜像如何实现的?
docker manifest 描述了docker镜像的基础信息,接下来测试如何实现这种效果。
这里不再叙述怎么打包的镜像了,只记录下如何将不同平台的镜像包提出来一个统一的入口,具体拉取哪个镜像,让机器自动匹配。其实也就是用到了docker的manifest,关于manifest的知识,可以看下这篇文章:Docker manifest 详解
docker manifest命令来制作多架构镜像,这个命令目前还是实验性质的,需要把docker的实验模式打开。我这里是20.20.5版本的,已经打开了,忘记是不是自己手动打开的了,如果没有打开,手动配置下。
首先保证本地已经包含两个平台的镜像包了,还有一点需要保证的是:远程仓库里面也必须要有这两个镜像,否则下面创建 manifest
时,会提示:no such manifest。
推送镜像
arm64机器
docker push oneslide/test:v-arm64
x86-64机器
docker push oneslide/test:x86
manifest
创建manifest包含两个不同架构镜像
docker manifest create oneslide/test:centos-v7 oneslide/test:centos-v7-x86 oneslide/test:centos-v7-arm64
标注不同架构镜像
docker manifest annotate oneslide/test:centos-v7 oneslide/test:centos-v7-x86 --os linux --arch amd64
docker manifest annotate oneslide/test:centos-v7 oneslide/test:centos-v7-arm64 --os linux --arch arm64
推送多架构镜像
docker manifest push oneslide/test:centos-v7
sha256:43bc91a08e800f09732c2aef16eaa21c4b80a645822b514e60a521ed19dc3512
参考文献:
https://blog.csdn.net/qq_33745102/article/details/125799187
https://blog.csdn.net/linmengmeng_1314/article/details/123231087