docker实现多cpu架构镜像

  • Post author:
  • Post category:其他

说明:

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 版权协议,转载请附上原文出处链接和本声明。