通过 Manifest 实现用户根据当前 CPU 架构自动从 Docker Hub 获取相应的 Docker 容器镜像

本文向大家介绍 Manifest 实现多 CPU 架构 Docker镜像 (Docker 镜像跨平台使用),注意介绍如何创建 Manifest 多架构镜像清单,以及如何将创建好的多架构镜像清单推送到 Docker Hub 镜像仓库。

前言

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 镜像了。

步骤

一、开启 Docker 子命令 Manifest 功能:

Manifest 是做为 Docker 客户端的子命令存在,不过这个子命令目前处在实验性中一般没有开启。我们需要手动开始这个子命令的功能。开启过程如下:

1、编辑配置文件 config.json 应用实验性功能:

Docker 的默认配置文件 config.json 是在 $HOME 目录下(如果找不到可以去看看root目录)的 .docker 目录下。编辑 config.json 文件,若目录和文件不存在手动创建。

vi ~/.docker/config.json

{
    "experimental": "enabled"
}

2、编辑守护进程配置文件 daemon.json 开启实验性功能:

编辑 daemon.json 若目录和文件不存在手动创建

vi /etc/docker/daemon.json

{
  "experimental": true
}

3、重启 Docker:

systemctl daemon-reload
service docker restart

4、验证 Manifest 是否开启成功:

docker manifest --help  #----查看manifest帮助信息

docker pull --platform arm64

--platform:该参数是用于拉取指定平台的镜像,也是实验性功能,在上面步骤中开启后就会出现。通过该参数可以手动指定需要的CPU平台镜像,而不用自动去识别。

二、使用 Manifest 创建多 CPU 架构的镜像清单:

1、创建一个 Manifest list 列表:

创建一个自定义命名的镜像名的 Manifest list,然后用该列表关联仓库里面的两个不同架构的镜像

docker manifest create otakusay/guacamole:latest otakusay/guacamole:arm64-20201008 otakusay/guacamole:amd64-20201008 otakusay/guacamole:arm-20201008

--amend:如果遇到冲突可以在末尾添加该参数强制生成列表。

2、查看仓库中创建好的 Manifest list:

docker manifest inspect otakusay/guacamole:latest

--verbose:末尾添加该参数可以显示更详细的信息包括 CPU 架构等。

3、将创建好的 Manifest list 推到仓库中:

docker manifest push otakusay/guacamole:latest

--purge:末尾添加该参数为推送列表后自动删除本地刚刚创建的列表清单。

后语

认真跟着本文的步骤操作其实一点都不难,要学会举一反三,不能什么东西都复制我的。

给TA打赏
共{{data.count}}人
人已打赏
Docker教程

在 VPS 主机上构建 Docker 容器 arm 、arm64 、amd64 等多平台容器镜像跨平台构建

2020-10-8 20:46:16

Docker教程

利用 Duplicati 配合宝塔面板自动备份你的网站文件和数据库

2020-10-10 22:44:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索