容器镜像与镜像包
本节主要介绍 ECS 的容器镜像与镜像包的概念和操作。
容器镜像与镜像包
ECS 容器包含容器镜像与镜像包两种概念。
容器镜像
容器镜像指符合 OCI 镜像标准 的镜像目录格式,可使用 ecs pull 命令拉取得到,容器镜像的目录结构如下图所示:
容器镜像组成说明
目录层级 | 组成部分 | 内容说明 |
---|---|---|
顶层目录 | ||
blobs | 内容寻址的块文件,目录必须存在,但是可以为空 | |
oci-layout | 此文件必须存在,为 JSON 格式,文件中必须包含 imageLayoutVersion 字段,文件中可以有其他字段作为扩展使用 | |
index.json | 此文件必须存在,为 JSON 格式,文件中必须包含镜像 Index 的基本属性 | |
底层目录 | blobs/sha256 | blobs 文件夹下的子文件夹是以 Hash 算法的名称来命名的,这些子文件夹下包含了真正的实体文件 |
如果要获取容器 Bundle 目录,必须使用 ecs unpack 命令 对容器镜像进行解包。
容器镜像包
容器镜像包指通过打包工具将容器 Bundle 打包后的 tar 包,其兼容 Docker 镜像格式。
容器镜像与镜像包转换
操作命令 | 说明 |
---|---|
ecs create | 创建指定目录的容器 Bundle |
ecs pull | 拉取容器镜像,可以使用 ecs unpack 命令将容器镜像解压为容器 Bundle |
ecs save | 保存容器 Bundle 为容器镜像包,可以使用 ecs load 命令将容器镜像包加载为容器镜像 |
容器镜像包操作
保存容器镜像包
ecs 命令提供将容器 Bundle 保存为容器镜像包的功能,打包后的容器镜像包以压缩包的形式存在,便于传递。保存容器镜像包时使用如下命令:
[root@sylixos:/root]# ecs save tarPackagePath bundlePath repoName tag [os]
参数说明
参数 | 是否必选 | 说明 |
---|---|---|
tarPackagePath | 是 | 生成的 tar 包路径 |
bundlePath | 是 | 容器 Bundle 路径 |
repoName | 是 | 仓库名称 |
tag | 是 | 标签名称,通常应为 “latest” |
os | 否 | 操作系统名称,默认为 “sylixos” |
加载容器镜像包
ecs 支持将容器镜像包加载至操作系统,加载容器镜像包时使用如下命令:
[root@sylixos:/root]# ecs load tarPackagePath bundlePath [id]
参数说明
参数 | 是否必选 | 说明 |
---|---|---|
tarPackagePath | 是 | 需要解包的 tar 包路径 |
bundlePath | 是 | 生成的容器 Bundle 路径 |
id | 否 | 容器的 ID 字符串,当指定容器 ID 时,加载容器镜像包后会执行容器注册 |