TSIA037.1-2023工业软件容器镜像分发规范_第1页
TSIA037.1-2023工业软件容器镜像分发规范_第2页
TSIA037.1-2023工业软件容器镜像分发规范_第3页
TSIA037.1-2023工业软件容器镜像分发规范_第4页
TSIA037.1-2023工业软件容器镜像分发规范_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

T/SIA037.1—2023

工业软件容器镜像分发规范

1范围

本文件规定了工业软件领域容器镜像分发的合规性要求,给出了工业软件领域容器镜像分发的工

作流类别种类和操作,确立了不同容器镜像版本兼容性的支持方案。

本文件适用于开展不同类型工业软件容器镜像分发的工作。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

GB/T11457-2006信息技术软件工程术语

ISO/IEC2382-2015信息技术词汇

3术语和定义

GB/T11457-2006、ISO/IEC2382-2015中确立的以及下列术语和定义适用于本文件。

3.1

容器镜像containerimage

一种在容器化环境中用于打包和分发工业软件应用的标准化结构。

注:改编自OCI(2021)《OCIImageFormatSpecification(image-spec)》,OCI标准中定义了容器镜像的结构和

元数据格式。

3.2

制品artifact

一种能够通过工业软件容器镜像分发规范推送和拉取的内容。

注:改编自OCI(2021)《OCIDistributionSpecification(distribution-spec)》,标准中定义了制品内容。

3.3

描述符descriptor

一种描述被引用内容的类型、元数据和内容地址的工具。

3.4

学兔兔摘要digest标准下载

一种应用哈希函数对容器镜像的内容进行计算而得到的唯一标识符,可以用来验证容器镜像的完

整性和一致性,确保在容器镜像的分发和使用过程中没有被篡改或损坏。

3.5

镜像索引imageindex

1

学兔兔标准下载

T/SIA037.1—2023

一种在镜像服务器上建立的索引,用于记录镜像服务器上存储的文件信息,以便用户可以快速地找

到所需的文件。

3.6

镜像清单imagemanifest

一个描述容器镜像内容和元数据的文件,提供了关于镜像的详细信息,包括镜像的层次结构、配置

信息和元数据等。

3.7

镜像仓库registry

一个无状态的、高度可伸缩的服务器端应用程序,可以存储镜像,并允许分发镜像。

4缩略语

下列缩略语适用于本文件。

API:应用程序编程接口(ApplicationProgrammingInterface)

BLOB:二进制大对象(BinaryLargeObject)

HTTP:超文本传输协议(HypertextTransferProtocol)

URL:统一资源定位符(UniformResourceLocator)

UUID:通用唯一标识符(UniversalUniqueIdentifier)

5镜像分发系统结构

在软件开发和部署过程中,分发是指将软件或其相关组件从一个地点传递到另一个地点的过程。在

容器化环境中,容器镜像分发是将容器镜像文件从一个位置传输到其他地方的过程。容器镜像是一个轻

量级、可移植的软件包,包含了运行特定应用程序所需的所有组件、依赖项和配置信息。容器镜像分发

的目的是将这些容器镜像有效地传输给需要部署和运行这些应用程序的目标环境。

本规范中工业软件容器镜像的分发规定了四种工作流类别及其合规性要求,明确当前工业软件容

器镜像版本兼容性,包括回退及升级的操作。工业软件容器镜像分发系统结构如图1所示:

合规性

工作流类别

合规性要求拉取操作推送操作内容发现内容管理

学兔兔版本兼容性标准下载

版本回退操作版本升级操作

图1工业软件容器镜像分发系统结构

2

T/SIA037.1—2023

6合规性

6.1合规性要求

分发合规性是指在工业软件容器镜像的拉取操作、推送操作、内容发现和内容管理等工作流类别中,

确保镜像仓库的操作符合相应的规范和要求。

在拉取工作流中,客户端可以从镜像仓库中拉取镜像。分发合规性要求镜像仓库必须具备支持拉取

操作的功能,以确保客户端能够安全、可靠地获取所需的镜像。

在推送工作流中,客户端可以将镜像推送到镜像仓库。分发合规性要求镜像仓库必须具备支持推送

操作的功能,同时符合相应的规范和要求,以确保推送的镜像符合安全性、可靠性和合法性的要求。

在内容发现工作流中,客户端可以列出或以其他方式查询存储在镜像仓库中的内容。分发合规性要

求镜像仓库必须提供相应的API,使客户端能够方便地发现和查询存储在仓库中的镜像内容。

在内容管理工作流中,客户端可以控制存储在镜像仓库中的内容的整个生命周期。分发合规性要求

镜像仓库必须支持相关的操作和管理功能,以确保镜像的存储、更新、删除等操作符合规范和要求。

符合分发合规性要求的镜像仓库必须实现以上提到的拉取操作、推送操作、内容发现和内容管理等

工作流类别的所有API,并且满足相应规范类别的要求。这样的镜像仓库能够保证镜像的安全性、可靠

性和合法性,同时提供方便的内容发现和管理功能,为用户提供优质的工业软件容器镜像分发服务。

6.2工作流类别

6.2.1拉取操作

拉取清单操作

拉取对象的进程以检索两个组件为主:清单和一个或多个blob。通常,拉取对象的第一步是检索

清单,可以以任何顺序在镜像仓库中检索内容。

要拉取清单,应按以下格式对URL执行GET请求:

/v2/<name>/manifests/<reference>

<name>指的是存储库的命名空间。<reference>必须是清单的摘要或标记。<reference>不得采用任

何其它格式。在本规范中,<name>必须匹配以下正则表达式:

[a-z0-9]+([._-][a-z0-9]+)*(/[a-z0-9]+([._-][a-z0-9]+)*)*

在本规范中,作为标签的<reference>的长度必须最多为128个字符,并且必须匹配以下正则

表达式:

[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}

客户端应该包含一个Accept标头,表明它支持的清单类型。在成功的响应中,Content-Type标头

将指示返回清单的类型。如果清单有mediaType字段,客户端应该拒绝,除非mediaType字段的值与

学兔兔Content-Type标头指定的类型匹配。标准下载

对现有清单URL的GET请求必须提供期望的清单,响应码必须为200OK。一个成功的响应应该在

标头Content-Digest中包含上传的blob的摘要。

3

学兔兔标准下载

T/SIA037.1—2023

如果响应中存在Content-Digest标头,则返回上传的blob的规范摘要,该摘要与提供的摘要不一

定相同。如果摘要确实不同,则是使用的散列算法不匹配。大多数客户端可以忽略该值,但如果使用它,

客户端必须根据上传的blob数据验证该值。

如果在镜像仓库中找不到清单,则响应码必须是404NotFound。

拉取blob操作

要拉取blob,应按以下格式对URL进行GET请求:

/v2/<name>/blobs/<digest>

<name>是存储库的命名空间,<digest>是blob的摘要。

对现有blobURL的GET请求必须提供期望的blob,响应码必须为200OK。一个成功的响应应该在

标头Content-Digest中包含上传的blob的摘要。如果blob存在,此标头的值必须是与响应主体匹配

的摘要。

如果在镜像仓库中找不到blob,则响应码必须是404NotFound。

验证存储库操作

为了验证存储库是否包含给定的清单或blob,应按以下格式向URL发出HEAD请求:

/v2/<name>/manifests/<reference>

/v2/<name>/blobs/<digest>

对现有blob或清单URL的HEAD请求必须返回200OK。一个成功的响应应该在标头Content-Digest

中包含上传的blob的摘要。

如果在镜像仓库中找不到blob或清单,则响应码必须是404Notfound。

6.2.2推送操作

整体推送操作

推送的顺序通常与拉取相反:首先上传构成对象的blob,然后推送清单。

如果它引用了镜像仓库中不存在的清单或blob,镜像仓库会拒绝上传到清单端点的任何类型清单。

镜像仓库必须接受具有引用不存在的清单的主题字段的其它有效清单,从而允许客户端以任一顺序推

送清单和该清单的来源。

有两种方法可以整体推送blob:

a)POSTthenPUT(一个POST请求后跟一个PUT请求):

要通过使用POST请求后跟PUT请求的方法来整体推送blob,有两个步骤:获取会话id(上传URL);

将blob上传到所述URL。

学兔兔要获取会话ID,应按以下格式对URL执行POST请求:标准下载

/v2/<name>/blobs/uploads/

这里,<name>指的是存储库的命名空间。成功后,响应必须包含202Accepted代码,且必须包含

以下标头:

Location:<location>

4

T/SIA037.1—2023

<location>必须包含一个UUID,该UUID代表一个唯一的会话ID,以便接下来的上传。<location>

不一定需要由镜像仓库本身提供。事实上,装载到另一台服务器是个更好的策略。

可选择地,位置可以是绝对的(包含协议和/或主机名),也可以是相对的(仅包含URL路径)。

一旦获取<location>后,通过以下URL路径发送PUT请求并使用以下标头和主体以正确上传:

<location>?digest=<digest>

Content-Length:<length>

Content-Type:application/octet-stream

<uploadbytestream>

<location>包含关键查询参数。此外,它应该与从POST请求中获得的<location>完全匹配。

这里<digest>是正在上传的blob的摘要,<length>是它的以字节为单位的大小。

成功完成请求后,响应必须具有代码201created且必须具有以下标头:

Location:<blob-location>

<blob-location>是一个可拉取的blobURL。

b)SinglePOST(单个POST请求):

镜像仓库支持使用单个POST请求推送blob。

要使用单个POST请求以整体方式推送blob,应使用以下格式对URL执行POST请求,并使用以下

标头和主体:

/v2/<name>/blobs/uploads/?digest=<digest>

Content-Length:<length>

Content-Type:application/octet-stream

<uploadbytestream>

这里,<name>是存储库的命名空间,<digest>是blob的摘要,<length>是blob的大小(以字节为

单位)。

Content-Length的标头必须与blob的实际内容长度匹配。同样,<digest>必须匹配blob的摘要。

不支持单一请求整体上传的镜像仓库应返回202Accepted状态码和Location标头,并且客户端

应该继续执行后续PUT请求,如POST后跟PUT上传方法所述。

成功完成请求必须返回201Created并且必须包含以下标头:

Location:<blob-location>

这里,<blob-location>是一个可拉取的blobURL。此位置不一定必须由镜像仓库提供服务。

分块推送操作

分块上传blob分三个阶段完成:

a)获取会话ID(上传URL)(POST)

学兔兔b)上传块(PATCH)标准下载

c)关闭会话(PUT)

有关获取会话ID的信息,应参阅上面有关通过POST/PUT方法整体推送blob的部分。分块上传的

过程保持不变,除了发布请求必须包含以下标头:

Content-Length:0

5

学兔兔标准下载

T/SIA037.1—2023

应参考上述部分以了解对<location>的限制。

要上传块,应向以下格式的URL路径发出PATCH请求,并使用以下标头和正文:

URLpath:<location>

Content-Type:application/octet-stream

Content-Range:<range>

Content-Length:<length>

<uploadbytestreamofchunk>

<location>指的是从前面的POST请求中获取的URL。

<range>是指块的字节范围,并且必须包含两端。第一个块的范围必须以0开头。它必须匹配以下

正则表达式:

^[0-9]+-[0-9]+$

<length>是当前块的内容长度,以字节为单位。

每个成功的块上传必须有一个202Accepted响应代码,并且具有以下标头:

Location<location>

每个连续的块上传应该使用对前一个块上传的响应中提供的<location>。

块必须按顺序上传,块的第一个字节是最后一个块的<end-of-range>加1。如果一个块被乱序上传,

镜像仓库必须以416RequestedRangeNotSatisfiable代码响应。

最后的块可以用PATCH请求上传,也可以在关闭的PUT请求中上传。无论最终块如何上传,都必须

使用PUT请求关闭会话。

要关闭会话,应向以下格式的URL发出PUT请求,并使用以下标头(可选择,取决于最终块是否已

经通过PATCH请求上传):

<location>?digest=<digest>

Content-Length:<lengthofchunk,ifpresent>

Content-Range:<rangeofchunk,ifpresent>

Content-Type:application/octet-stream<ifchunkprovided>

OPTIONAL:<finalchunkbytestream>

关闭的PUT请求必须包含整个blob(不是最终块)的<digest>作为查询参数。

成功关闭会话的响应必须是201Created,并且必须包含以下标头:

Location:<blob-location>

这里,<blob-location>是一个可拉取的blobURL。

挂载blob操作

如果必要的blob已经存在于同一镜像仓库中的另一个存储库中,则可以通过以下格式的POST请

求将其挂载到不同的存储库中:学兔兔标准下载

/v2/<name>/blobs/uploads/?mount=<digest>&from=<other_name>

在这种情况下,<name>是blob将被挂载到的命名空间。<digest>是要挂载blob的摘要,<other_name>

是应被挂载blob的命名空间。这一步通常代替签名描述的对/v2/<name>/blobs/uploads/的请求(用于

启动上传会话)。

6

T/SIA037.1—2023

成功挂载的响应必须是201Created,并且必须包含以下标头:

Location:<blob-location>

Location标头将包含用于访问接受的层的文件的镜像仓库。Content-Digest标头返回上传的blob

的规范摘要,与提供的摘要不同。大多数客户端可以忽略该值,但如果使用它,客户端应该根据上传的

blob数据验证该值。

镜像仓库可以将from参数视为可选参数,如果可以找到它,它可以交叉安装blob。

或者,如果镜像仓库不支持跨存储库挂载或无法挂载请求的blob,它应该返回202。这表明上传会

话已经开始,并且客户端可以继续上传。

推送清单操作

要推送清单,应对以下格式的路径执行PUT请求,并使用以下标头和主体:

/v2/<name>/manifests/<reference>

客户端应该将Content-Type标头设置为被推送的清单的类型。所有清单都应该包含一个mediaType

字段来声明被推送的清单类型。如果清单包含mediaType字段,客户端必须将Content-Type标头设置

为mediaType字段指定的值。

Content-Type:application/vnd.image.manifest.v1+json

清单字节流:

{

"mediaType":"application/vnd.image.manifest.v1+json",

...

}

<name>是存储库的命名空间,<reference>必须是摘要或标记。

上传的清单必须引用构成对象的任何blob。但是,blob列表可能为空。

镜像仓库必须以客户端提供的确切字节表示形式存储清单。成功上传后,镜像仓库必须返回响应代

码201Created,并且必须具有以下标头:

Location:<blob-location>

<location>是一个可拉取的清单URL。Content-Digest标头返回上传的blob的规范摘要,并且必

须等于客户端提供的摘要。客户端可以忽略该值,但如果使用它,客户端应该根据上传的blob数据验

证该值。

尝试拉取不存在的存储库必须返回响应代码404NotFound。

镜像仓库应该对它能接受的最大清单大小做一些限制。强制执行此限制的镜像仓库应响应将清单

推送到此限制的请求,响应代码为413PayloadTooLarge。客户端和镜像仓库实现应该期望能够支持

学兔兔至少4MB的清单推送。标准下载

推送主题清单操作

当推送带有主题字段的镜像或制品清单并且来源API404时,客户端必须:

a)使用ReferrersTagSchema拉取当前来源列表;

b)如果该拉取返回的清单不是预期的镜像索引,则客户端应报告失败并跳过其余步骤;

7

学兔兔标准下载

T/SIA037.1—2023

c)如果标签返回404,客户端必须以空镜像索引开始;

d)验证清单的描述符不在引用列表中(不应该创建重复的条目);

e)将推送的镜像或制品清单的描述符附加到来源列表中的清单。artifactType的值必须在描述

符中设置为artifactmanifest中的artifactType的值,或者镜像清单中的配置描述符

mediaType。必须将镜像或制品清单中的所有注释复制到此描述符。

f)使用相同的来源标签架构推送更新的来源列表。客户端可以使用条件HTTP请求来防止覆盖自

首次拉取后已更改的来源列表。

6.2.3内容发现

获取标签操作

要获取标签列表,应对以下格式的路径执行GET请求:/v2/<name>/tags/list。

<name>是存储库的命名空间。假设找到存储库,此请求必须返回200OK响应代码。如果存储库上

没有标签,标签列表可能为空。如果列表不为空,则标签必须按词汇顺序(即不区分大小写的字母数字

顺序)。

成功后,响应必须是以下格式的json正文:

{

"name":"<name>",

"tags":[

"<tag1>",

"<tag2>",

"<tag3>"

]

}

<name>是存储库的命名空间,<tag1>、<tag2>和<tag3>是存储库上的每个标签。

除了获取整个标签列表之外,还可以通过提供n查询参数来获取标签的子集。在这种情况下,路径

将如下所示:/v2/<name>/tags/list?n=<int>。

<name>是存储库的命名空间,<int>是一个整数,指定请求的标签数量。仅当附加到存储库的标签

总数少于<int>时,对此类请求的响应可能返回少于<int>个的结果。否则,响应必须包含<int>个结果。

当n为零时,该端点必须返回一个空列表,并且不得包含Link标头。如果没有最后一个查询参数(如

下所述),返回的列表将从列表的开头开始并包含<int>个结果。如上所述,标签必须按词汇顺序排列。

最后一个查询参数提供了进一步限制标签数量的方法。它通常与n参数结合使用:

/v2/<name>/tags/list?n=<int>&last=<tagname>。

<name>是存储库的命名空间,<int>是请求的标签数,<tagname>是最后一个标签的值。<tagname>

不能是数字索引,而必须是正确的标签。这种类型的请求将返回到学兔兔<int>标签,不包含以标准下载<tagname>开头,

即<tagname>不会包含在结果中,但会返回<tagname>之后的最多<int>个标签。标签必须按词汇顺序排

列。

使用最后一个查询参数时,n参数是可选的。

获取来源操作

8

T/SIA037.1—2023

要获取来源列表,应对以下格式的路径执行GET请求:/v2/<name>/referrers/<digest>。

<name>是存储库的命名空间,<digest>是在主题字段中指定的清单的摘要。

假设找到存储库,此请求必须返回200OK响应代码。如果镜像仓库支持来源API,则镜像仓库不

得向来源API请求返回404NotFound。如果请求无效,像具有无效语法的<digest>,则必须返回400

BadRequest。

成功后,响应必须是JSON主体,其镜像索引包含描述符列表。每个描述符都属于同一<name>命名

空间中的镜像或制品清单,主题字段指定<digest>的值。描述符必须包含一个artifactType字段,该

字段设置为制品清单的artifactType值(如果存在),或者配置描述符的mediaType用于镜像清单。

描述符必须包括来自镜像或制品清单的注释。如果查询结果没有匹配的来源,则必须返回一个空的清单

列表。如果带有摘要<digest>的清单不存在,则镜像仓库可以返回一个空清单列表。在推送带有摘要

<digest>的清单后,镜像仓库必须在引用列表中包含先前推送的条目。

当描述符列表不能在单个清单中返回时,必须在响应中包含链接头。每个响应都是一个镜像索引,

在manifests字段中具有不同的描述符。必须根据RFC5988使用关系类型rel="next"设置链接头。

镜像仓库应该支持对artifactType的过滤。要使用过滤器获取来源列表应对以下格式的路径执行

GET请求:/v2/<name>/referrers/<digest>?artifactType=<mediaType>。如果请求应用了过滤,则响

应必须包含一个注释,表示应用了artifactType过滤器。如果应用了多个过滤器,注释必须包含一个

逗号分隔的应用过滤器列表。

如果来源API返回404,则客户端必须回退到拉取referrerstagschema。响应应该是一个镜像

索引,其内容与来源API的预期内容相同。如果对来源API的响应是404,并且标签框架没有返回有效

的镜像索引,则客户端应该假设清单中没有来源。

6.2.4内容管理

删除标签操作

<name>是存储库的命名空间,<tag>是要删除的标签的名称。成功后,镜像仓库必须以202Accepted

代码响应。如果标签删除被禁用,镜像仓库必须响应400BadRequest或405MethodNotAllowed。

要删除标签,应对以下格式的路径执行DELETE请求:

/v2/<name>/manifests/<tag>。

删除清单操作

要删除清单,应对以下格式的路径执行DELETE请求:

/v2/<name>/manifests/<digest>。

<name>是存储库的命名空间,<digest>是要删除的清单的摘要。成功后,镜像仓库必须以202

Accepted代码响应。如果存储库不存在,则响应必须返回404NotFound。

学兔兔当删除包含主题字段的镜像或制品清单时,并且来源API返回404,客户端应该:标准下载

a)使用referrerstagschema拉取来源列表;

b)从引用已删除清单的清单数组中删除描述符条目;

c)使用相同的referrerstagschema推送更新的来源列表。客户端可以使用条件HTTP请求来

防止覆盖自首次拉取后已更改的来源列表。

9

学兔兔标准下载

T/SIA037.1—2023

当删除具有关联referrerstagschema的清单时,客户端也可以在返回有效镜像索引时删除来源

标签。

删除blob操作

要删除blob,应对以下格式的路径执行DELETE请求:/v2/<name>/blob/<digest>。

<name>是存储库的命名空间,<digest>是要删除的blob的摘要。成功后,镜像仓库必须响应代码

202Accepted。如果找不到blob,则必须返回404NotFound代码。

7版本兼容性

7.1兼容性

工业软件容器镜像版本兼容性是指在工业软件容器环境中,确保不同版本的工业软件容器镜像能

够正确运行和相互配合的能力。

工业软件容器镜像是将工业软件应用程序、依赖库、配置文件等打包为一个可移植、自包含的容器

化形式,以实现快速部署、可重复性和可扩展性。它包含了应用程序的所有运行时需要的组件,并以镜

像的形式进行分发和部署。

在工业领域,工业软件具有一些特殊的要求和特点。首先,工业软件往往需要与底层硬件设备和工

业网络进行交互,包括数据采集、设备控制、实时通信等。其次,工业软件的稳定性和可靠性对于生产

过程的安全和正常运行至关重要。因此,工业软件容器镜像的版本兼容性在工业环境中尤为重要。

工业软件容器镜像版本兼容性要求不同版本的工业软件容器镜像能够无缝地进行部署和运行,保

持正常的功能和性能。要求在升级或更换工业软件容器镜像时,应确保新版本与旧版本之间的兼容性,

以避免应用程序的中断或功能损失。这要求工业软件容器镜像的开发者在设计和开发过程中考虑版本

兼容性,并提供清晰的文档和指导,以确保用户能够正确地升级和使用新版本的镜像。

7.2版本回退选择

客户端必须支持旧版本的工业软件容器镜像分发规范。本节描述了当镜像仓库没有新的/可选择的

API时必须实现的客户端回退程序。

使用已定义主题字段推送镜像或制品清单的客户端必须验证来源API是否可用或回退以更新推送

到ReferrersTagSchema描述的标签的镜像索引。查询来源API并收到404NotFound的客户端必须

回退到使用推送到ReferrersTagSchema描述的标签的镜像索引。

<alg>-<ref>

<arg>:摘要算法(示例:sha256或sha512)

<ref>:来自主题字段的摘要(限制为64个字符)

学兔兔示例:在/project存储库中主题字段摘要设置为标准下载sha256:<digest>的清单

在/project@sha256:<digest>的来源列表中有一个描述符。

此标签应返回与来源API的预期响应相匹配的镜像索引。维护此标签的内容是客户端推送和删除

包含主题字段的镜像和制品清单的责任。

10

T/SIA037.1—2023

注意:多个客户端可能会尝试同时更新标签,从而导致竞争条件和数据丢失。防止竞争条件是客户

端和终端用户的责任,且可以通过使用提供来源API的镜像仓库来解决。客户端可以对支持ETag条件

的镜像仓库使用条件HTTP推送,以避免与其它客户端发生冲突。

7.3版本升级选择

以下描述了升级到新版本规范的过程以及启用新API的过程。

当镜像仓库添加对来源API的支持时,此API需要考虑在API可用之前使用ReferrersTagSchema

推送的清单。

a)镜像仓库必须包括预先存在的镜像和制品清单,这些清单在由带有来源标签框架的标签的镜像

索引中列出,并且来源API响应中具有有效的主题字段。

b)镜像仓库必须包含来源API响应中所有主题字段的预先存在的镜像和制品清单。

c)在来源API启用后,镜像仓库必须在来源API响应中包含有效主题字段的所有新推送的镜像

和制品清单。

学兔兔标准下载

11

学兔兔标准下载

T/SIA037.1—2023

参考文献

[1]GB/T32399-2015信息技术云计算参考架构

[2]GB/T26805.3-2011工业控制计算机系统软件第3部分:文档管理指南

[3]GB/T26805.4-2011工业控制计算机系统软件第4部分:工程化文档规范

[4]GB/T26805.5-2011工业控制计算机系统软件第5部分:用户软件文档

[5]GB/T19902.3-2006工业自动化系统与集成制造软件互操作性能力建规第3部分:接口服

务、协议及能力模板

[6]OCI(2021)《OCIDistributionSpecification(distribution-spec)》

[7]OCI(2021)《OCIImageFormatSpecification(image-spec)》

学兔兔标准下载

12

ICS35.020

T/SIA

中国软件行业协会团体标准

T/SIA037.1—2023

工业软件容器镜像分发规范

IndustrialSoftwareContainerImageDistributionSpecification

学兔兔标准下载

2023-10-20发布2023-10-20实施

中国软件行业协会发布

T/SIA037.1—2023

工业软件容器镜像分发规范

1范围

本文件规定了工业软件领域容器镜像分发的合规性要求,给出了工业软件领域容器镜像分发的工

作流类别种类和操作,确立了不同容器镜像版本兼容性的支持方案。

本文件适用于开展不同类型工业软件容器镜像分发的工作。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

GB/T11457-2006信息技术软件工程术语

ISO/IEC2382-2015信息技术词汇

3术语和定义

GB/T11457-2006、ISO/IEC2382-2015中确立的以及下列术语和定义适用于本文件。

3.1

容器镜像containerimage

一种在容器化环境中用于打包和分发工业软件应用的标准化结构。

注:改编自OCI(2021)《OCIImageFormatSpecification(image-spec)》,OCI标准中定义了容器镜像的结构和

元数据格式。

3.2

制品artifact

一种能够通过工业软件容器镜像分发规范推送和拉取的内容。

注:改编自OCI(2021)《OCIDistributionSpecification(distribution-spec)》,标准中定义了制品内容。

3.3

描述符descriptor

一种描述被引用内容的类型、元数据和内容地址的工具。

3.4

学兔兔摘要digest标准下载

一种应用哈希函数对容器镜像的内容进行计算而得到的唯一标识符,可以用来验证容器镜像的完

整性和一致性,确保在容器镜像的分发和使用过程中没有被篡改或损坏。

3.5

镜像索引imageindex

1

学兔兔标准下载

T/SIA037.1—2023

一种在镜像服务器上建立的索引,用于记录镜像服务器上存储的文件信息,以便用户可以快速地找

到所需的文件。

3.6

镜像清单imagemanifest

一个描述容器镜像内容和元数据的文件,提供了关于镜像的详细信息,包括镜像的层次结构、配置

信息和元数据等。

3.7

镜像仓库registry

一个无状态的、高度可伸缩的服务器端应用程序,可以存储镜像,并允许分发镜像。

4缩略语

下列缩略语适用于本文件。

API:应用程序编程接口(ApplicationProgrammingInterface)

BLOB:二进制大对象(BinaryLargeObject)

HTTP:超文本传输协议(HypertextTransferProtocol)

URL:统一资源定位符(UniformResourceLocator)

UUID:通用唯一标识符(UniversalUniqueIdentifier)

5镜像分发系统结构

在软件开发和部署过程中,分发是指将软件或其相关组件从一个地点传递到另一个地点的过程。在

容器化环境中,容器镜像分发是将容器镜像文件从一个位置传输到其他地方的过程。容器镜像是一个轻

量级、可移植的软件包,包含了运行特定应用程序所需的所有组件、依赖项和配置信息。容器镜像分发

的目的是将这些容器镜像有效地传输给需要部署和运行这些应用程序的目标环境。

本规范中工业软件容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论