说明:
manifest是一个文件,这个文件包含了有关于镜像信息,如层、大小和摘要。docker manifest命令还向用户提供附加信息,比如构建镜像的操作系统和体系结构。而manifest list是一个镜像清单列表,用于存放多个不同os/arch的镜像信息。我们可以创建一个manifest list来指向两个镜像(一个linux 64位和一个指向arm64位的镜像),然后对用户提供一个唯一的镜像名称。从Docker registry v2.3和Docker 1.10 开始,Docker hub就可以pull multi architecture Docker镜像了。
操作:
1.开启docker子命令manifest
vim ~/.docker/config.json
{
"experimental": "enabled"
}
vim /etc/docker/daemon.json
{
"experimental": true
}
重启docker
systemctl daemon-reload
service docker restart
docker manifest --help #----查看manifest帮助信息
2. 拉取不同架构的镜像 (查看目标镜像是否支持amd\arm,在对应机器方可拉取对应镜像)
# 拉取arm镜像,需要在arm机器进行操作。
docker pull --platform=linux/arm64 image:tag
# 拉取amd镜像,需要在amd机器进行拉取操作。
docker pull --platform=linux/amd64 image:tag
# 若不使用--platform则需要在不同架构的服务器进行后续操作
3.创建mainfest
docker manifest create nginx:1.5 nginx:1.5-amd nginx:1.5-arm
#第一个 nginx:1.5 是需要打成的镜像
#第二个 nginx:1.5-amd 是amd架构的镜像
#第三个 nginx:1.5-arm 是arm架构的镜像
4.推送到仓库
docker manifest push nginx:1.5
说明:
拉取镜像时只需要输入nginx1:.5同一tag即可根据当前架构进项匹配,如果需要额外添加其他的架构仓库,只需要修改之前创建的manifest即可.
版权声明:本文为wtl2281296229原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。