docker多架构镜像推送与备份他人镜像[笔记]

前言

当我们的镜像包含多个架构时,我们需要构建多个镜像,这样拉取时就能根据当前机器的架构,拉取符合当前架构的镜像。

docker manifest 能帮助实现多架构推送,需要把docker的实验模式打开

docker version 查看Experimental是否为true 》  Experimental: true

笔记

首先保证本地已经包含两个平台的镜像包了
docker images 查看

还有一点需要保证的是:远程仓库里面也必须要有这两个镜像,否则下面创建 manifest时,会提示:no such manifest: xxxxxxxxxxx  

要是仓库上没有就推送下两个平台的镜像

推送镜像
arm64机器:docker push songwqs1/onething2:arm64

x86-64机器:docker push songwqs1/onething2:x86_64

manifest
创建manifest包含两个不同架构镜像
docker manifest create songwqs1/onething2:2.4.1 songwqs1/onething2:x86_64 songwqs1/onething2:arm64

标注不同架构镜像
docker manifest annotate songwqs1/onething2:2.4.1 songwqs1/onething2:x86_64 --os linux --arch amd64
docker manifest annotate songwqs1/onething2:2.4.1 songwqs1/onething2:arm64 --os linux --arch arm64

推送多架构镜像
docker manifest push songwqs1/onething2:2.4.1

笔记2:备份其他人的镜像到自己仓库

1、首先你得有一个docker hub账号,然后点击右上角Create repository 创建好一个仓库

2、准备一台服务器,安装好docker

3、在SSH工具 执行:docker login

3、拉取源镜像到服务器 docker pull xxx/xxx

4、输入:docker images  查看是否拉取

5、拉取成功就重新命名:执行 docker tag xxx/xxx yyyy/yyy

xxx/xxx即 源用户名/仓库名,yyy/yyy即你的用户名/仓库名  如: docker tag onething1/wxedge:2.4.1 songwqs1/onething2:2.4.1

6、再执行docker images 看看是否修改成功

7、push到自己仓库:docker push 用户名/镜像名 如:docker push songwqs1/onething2

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注