版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
ICS35.020
T/SIA
中國軟件行業(yè)協(xié)會團體標(biāo)準
T/SIA037.2—2023
工業(yè)軟件容器鏡像規(guī)范
IndustrialSoftwareContainerImageSpecifications
學(xué)兔兔標(biāo)準下載
2023-10-20發(fā)布2023-10-20實施
中國軟件行業(yè)協(xié)會發(fā)布
T/SIA037.2—2023
工業(yè)軟件容器鏡像規(guī)范
1范圍
本文件規(guī)定了工業(yè)軟件領(lǐng)域容器鏡像的內(nèi)容描述符、鏡像布局、清單、索引和配置等內(nèi)容,給出了
工業(yè)軟件領(lǐng)域容器鏡像的設(shè)計考量,確立了工業(yè)軟件容器鏡像的構(gòu)建過程。
本文件適用于開展工業(yè)軟件容器鏡像設(shè)計與構(gòu)建的工作。
2規(guī)范性引用文件
下列文件中的內(nèi)容通過文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文件,
僅該日期對應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本
文件。
GB/T11457-2006信息技術(shù)軟件工程術(shù)語
ISO/IEC2382-2015信息技術(shù)詞匯
3術(shù)語和定義
GB/T11457-2006、ISO/IEC2382-2015中確立的以及下列術(shù)語和定義適用于本文件。
3.1
容器鏡像containerimage
一種在容器化環(huán)境中用于打包和分發(fā)工業(yè)軟件應(yīng)用的標(biāo)準化結(jié)構(gòu)。
注:改編自O(shè)CI(2021)《OCIImageFormatSpecification(image-spec)》,OCI標(biāo)準中定義了容器鏡像的結(jié)構(gòu)和
元數(shù)據(jù)格式。
3.2
制品artifact
一種能夠通過工業(yè)軟件容器鏡像分發(fā)規(guī)范推送和拉取的內(nèi)容。
注:改編自O(shè)CI(2021)《OCIDistributionSpecification(distribution-spec)》,標(biāo)準中定義了制品內(nèi)容。
3.3
軟件捆綁包bundle
一種包含容器所需文件和配置的目錄或壓縮文件,可用于創(chuàng)建容器鏡像。
注:改編自O(shè)CI(2021)《OCIRuntimeSpecification(runtime-spec)》,標(biāo)準中定義了bundle。
學(xué)兔兔3.4標(biāo)準下載
摘要digest
一種應(yīng)用哈希函數(shù)對容器鏡像的內(nèi)容進行計算而得到的唯一標(biāo)識符,可以用來驗證容器鏡像的完
整性和一致性,確保在容器鏡像的分發(fā)和使用過程中沒有被篡改或損壞。
3.5
1
學(xué)兔兔標(biāo)準下載
T/SIA037.2—2023
鏡像索引imageindex
一種在鏡像服務(wù)器上建立的索引,用于記錄鏡像服務(wù)器上存儲的文件信息,以便用戶可以快速地找
到所需的文件。
3.6
鏡像布局imagelayout
一種描述容器鏡像中各個組成部分的存儲方式和目錄結(jié)構(gòu)的一種方式。
3.7
鏡像清單imagemanifest
一個描述容器鏡像內(nèi)容和元數(shù)據(jù)的文件,提供了關(guān)于鏡像的詳細信息,包括鏡像的層次結(jié)構(gòu)、配置
信息和元數(shù)據(jù)等。
3.8
媒體類型mediatype
一種用于標(biāo)識容器鏡像中的各個組成部分的數(shù)據(jù)格式。
4縮略語
下列縮略語適用于本文件。
ABI:應(yīng)用程序二進制接口(ApplicationBinaryInterface)
ARM:高級精簡指令集計算機(AdvancedRISCMachine)
BLOB:二進制大對象(BinaryLargeObject)
CPU:中央處理器(CentralProcessingUnit)
EBNF:擴展巴克斯-瑙爾范式(ExtendedBackus-NaurForm)
FAT:文件分配表(FileAllocationTable)
FTP:文件傳輸協(xié)議(FileTransferProtocol)
HTTP:超文本傳輸協(xié)議(HypertextTransferProtocol)
IANA:互聯(lián)網(wǎng)數(shù)字分配機構(gòu)(TheInternetAssignedNumbersAuthority)
ISA:指令集體系結(jié)構(gòu)(InstructionSetArchitecture)
JSON:JavaScript對象表示法(JavaScriptObjectNotation)
NFS:網(wǎng)絡(luò)文件系統(tǒng)(NetworkFileSystem)
SBOM:軟件材料清單(SoftwareBillofMaterials)
URI:統(tǒng)一資源標(biāo)識符(UniformResourceIdentifier)
URL:統(tǒng)一資源定位符(UniformResourceLocator)
5鏡像系統(tǒng)結(jié)構(gòu)
工業(yè)軟件容器與通用容器之間存在一些差異和共性。工業(yè)軟件容器是針對工業(yè)領(lǐng)域的應(yīng)用而設(shè)計
的,而通用容器是廣泛應(yīng)用于各個領(lǐng)域的容器化技術(shù)。學(xué)兔兔標(biāo)準下載
工業(yè)軟件容器與通用容器在安全性要求、實時性要求和硬件設(shè)備支持方面存在差異。由于工業(yè)領(lǐng)域
的應(yīng)用往往涉及關(guān)鍵基礎(chǔ)設(shè)施和敏感數(shù)據(jù),工業(yè)軟件容器通常需要更高的安全性,需要采用更嚴格的安
全措施和認證機制。此外,工業(yè)控制系統(tǒng)對實時性要求較高,因此工業(yè)軟件容器需要滿足實時性要求,
2
T/SIA037.2—2023
并能夠在嚴格的時間限制下提供穩(wěn)定的性能。另外,工業(yè)軟件容器需要與特定的硬件設(shè)備進行交互,因
此設(shè)計上涉及與特定硬件的集成和通信。
然而,工業(yè)軟件容器和通用容器也有一些共性,它們都是基于容器化技術(shù)的。同時,它們都具有輕
量級和可移植性的特點,可以在不同的環(huán)境中快速部署和遷移。另外,工業(yè)軟件容器和通用容器都提供
隔離的運行環(huán)境,使得不同的應(yīng)用程序可以獨立運行,并支持水平擴展,根據(jù)需求動態(tài)增加或減少容器
實例。
工業(yè)軟件容器鏡像規(guī)范包含兩個主要部分,旨在定義和規(guī)范工業(yè)軟件容器鏡像的結(jié)構(gòu)和設(shè)計考量。
在工業(yè)軟件容器鏡像部分主要關(guān)注內(nèi)容描述符、鏡像布局、鏡像清單、鏡像索引、鏡像配置和鏡像
注解等關(guān)鍵要素。通過定義這些要素的結(jié)構(gòu)、格式和使用方式,可以確保工業(yè)軟件容器鏡像的一致性、
可移植性和互操作性。內(nèi)容描述符用于描述容器鏡像的關(guān)鍵信息和特性,鏡像布局規(guī)定了鏡像內(nèi)部文件
和目錄的組織結(jié)構(gòu),鏡像清單記錄了鏡像中包含的各個層和文件的詳細信息,鏡像索引用于管理和檢索
多個鏡像的關(guān)系,鏡像配置規(guī)范了容器的運行時行為和環(huán)境配置,而鏡像注解提供了容器的元數(shù)據(jù)信息
和描述。
在工業(yè)軟件容器鏡像設(shè)計考量部分,關(guān)注的是可擴展性、規(guī)范化、JSON、EBNF、表達式和優(yōu)先級等
方面。這些設(shè)計考量旨在提供靈活性、標(biāo)準化和可靠性,以滿足工業(yè)軟件容器的特定需求和行業(yè)標(biāo)準。
鼓勵采用可擴展的設(shè)計模式,以適應(yīng)不斷變化的工業(yè)環(huán)境和應(yīng)用需求。同時,推崇規(guī)范化的實踐,以確
保容器鏡像的一致性和可維護性。使用JSON(JavaScriptObjectNotation)作為數(shù)據(jù)交換格式和配
置語言,以及EBNF(ExtendedBackus-NaurForm)作為語法規(guī)范化的表示方法,能夠提供清晰、易讀
和可擴展的表達能力。此外,強調(diào)對表達式和優(yōu)先級的正確理解和應(yīng)用,以確保容器鏡像的配置和行為
符合預(yù)期。
通過遵循工業(yè)軟件容器鏡像規(guī)范,工業(yè)軟件開發(fā)者和運維人員能夠創(chuàng)建、交付和管理一致性和高質(zhì)
量的工業(yè)軟件容器鏡像。該標(biāo)準結(jié)構(gòu)的定義和規(guī)范化,有助于推動工業(yè)軟件容器技術(shù)的發(fā)展,促進工業(yè)
應(yīng)用的容器化和數(shù)字化轉(zhuǎn)型。具體的結(jié)構(gòu)如圖1所示:
工業(yè)軟件容器
鏡像規(guī)范
組成要素設(shè)計考量
內(nèi)
鏡鏡鏡鏡鏡可
容規(guī)JE表優(yōu)
像像像像像擴
描范SB達先
布清索配注展ON
述化式級
局單引置解性NF
符
學(xué)兔兔標(biāo)準下載
圖1工業(yè)軟件容器鏡像系統(tǒng)結(jié)構(gòu)
6組成要素
6.1內(nèi)容描述符
3
學(xué)兔兔標(biāo)準下載
T/SIA037.2—2023
6.1.1描述符組成
內(nèi)容描述符(或簡稱為描述符)描述了目標(biāo)內(nèi)容的排列。一個內(nèi)容描述符包括內(nèi)容類型、一個內(nèi)容
摘要(Digest)和原始內(nèi)容的字節(jié)大小(Size)。描述符應(yīng)當(dāng)嵌入到其他格式中以安全地引用外部內(nèi)容。
其他格式應(yīng)該使用描述符來安全地引用外部內(nèi)容。
在工業(yè)軟件容器鏡像規(guī)范中,內(nèi)容描述符是用于唯一標(biāo)識和描述工業(yè)軟件容器鏡像中各個組成部
分的數(shù)據(jù)結(jié)構(gòu)。內(nèi)容描述符由兩個關(guān)鍵組件組成:算法標(biāo)識符和摘要。
6.1.2算法標(biāo)識符
算法標(biāo)識符是一個字符串,用于表示用于計算摘要的哈希算法。常見的算法標(biāo)識符包括SHA-256、
SHA-1、MD5等。它指定了用于生成摘要的具體哈希算法。
描述符由一組封裝在鍵值字段中的屬性組成。表1規(guī)定了構(gòu)成描述符的主要屬性:
表1描述符主要屬性
屬性名說明是否為必選屬性補充說明
mediaTypestring包含引用內(nèi)容是
的媒介類型
digeststring目標(biāo)內(nèi)容的摘是當(dāng)通過來源不受信任時,應(yīng)根據(jù)此
要摘要驗證檢索到的內(nèi)容。
sizeint64原始內(nèi)容的大是存在此屬性,以便客戶端在處理之
?。ㄒ宰止?jié)為前具有預(yù)期的內(nèi)容大小。如果檢索
單位)到的內(nèi)容的長度與指定的長度不匹
配,則不應(yīng)信任該內(nèi)容。
urlsarrayofstrings指定或許可從否
中下載此對象
的URI列表
annotationsstring-string此描述符的任否必須使用注釋規(guī)則
map意元數(shù)據(jù)
datastring包含引用內(nèi)容否解碼后的數(shù)據(jù)必須與引用的內(nèi)容相
的嵌入式表示同,并應(yīng)由內(nèi)容使用者根據(jù)
形式digest和size字段進行驗證。
artifactTypestring包含一個描述否當(dāng)描述符引用一個artifactmanifest
符所指向的制時這個值就是artifactType,當(dāng)描述
品的類型符引用一個imagemanifest時這個
值就是屬性描述符mediaType。
6.1.3學(xué)兔兔摘要標(biāo)準下載
摘要是通過指定的哈希算法對特定數(shù)據(jù)內(nèi)容進行計算生成的唯一標(biāo)識符。摘要可以確保工業(yè)軟件
容器鏡像中各個組成部分的完整性和唯一性。通過對鏡像中的文件或數(shù)據(jù)進行哈希計算,生成的摘要可
以唯一地識別每個組成部分,并確保它們未被篡改。
4
T/SIA037.2—2023
描述符的digest屬性扮演著摘要和內(nèi)容尋址的角色。其通過對字節(jié)進行抗沖突散列來唯一標(biāo)識內(nèi)
容。如果digest可以以安全的方式進行通信,則可以通過重新計算Digest來驗證是否來自不安全來
源的內(nèi)容,確保內(nèi)容未被修改。
digest屬性的值是一個由算法部分和編碼部分組成的字符串。該算法指定用于digest的加密散
列函數(shù)和編碼;編碼部分包含散列函數(shù)的編碼結(jié)果。
digest字符串必須符合以下語法:
digest::=algorithm":"encoded
algorithm::=algorithm-component(algorithm-separatoralgorithm-component)*
algorithm-component::=[a-z0-9]+
algorithm-separator::=[+._-]
encoded::=[a-zA-Z0-9=_-]+
注意:算法對編碼部分的語法施加特定的限制。
表2給出了一些digest字符串例子:
表2digest字符串
Digest算法是否注冊
sha256:6c3c624b58dbbcd3c0dd82b4c53f0SHA-256Yes
4194d1247c6eebdaab7c610cf7d66709b3b
sha512:401b09eab3c013d4ca54922bb802bSHA-512Yes
ec8fd5318192b0a75f201d8b372742...
multihash+base58:QmRZxt2b1FVZPNqd8hsMultihashNo
iykDL3TdBDeTSPX9Kv46HmX4Gx8
sha256+b64u:LCa0a2j_xo_5m0U8HTBBNBNCSHA-256withurlsafeNo
LXBkg7-g-YpeiGJm564base64
如果符合上述語法,實現(xiàn)應(yīng)該允許使用無法識別的算法的digest通過驗證。雖然SHA-256將僅使
用十六進制編碼的digest,但算法中的分隔符和編碼中的字母數(shù)字都包含在內(nèi)以允許擴展。
在計算digest之前,應(yīng)該驗證內(nèi)容的大小以減少哈希沖突空間。應(yīng)該避免在計算hash之前進行
繁重的處理。實現(xiàn)可以使用底層內(nèi)容的規(guī)范化來確保穩(wěn)定的摘要。
Digest計算:
Digest由以下偽代碼計算,其中H是選定的哈希算法,由字符串<alg>標(biāo)識:
letID(C)=Descriptor.digest
letC=<bytes>
letD='<alg>:'+Encode(H(C))
letverified=ID(C)==D
學(xué)兔兔上面,將摘要定義為ID(C),從Descriptor.digest字段中提取。內(nèi)容標(biāo)準下載C是一串字節(jié)。函數(shù)H以
字節(jié)為單位返回C的哈希值,并傳遞給函數(shù)Encode并以算法為前綴以獲得Digest。如果ID(C)等于D,
則驗證結(jié)果為真,確認C是D標(biāo)識的內(nèi)容。驗證后,以下為真:
D==ID(C)=='<alg>:'+Encode(H(C))
通過獨立計算Digest,將Digest確認為摘要。
5
學(xué)兔兔標(biāo)準下載
T/SIA037.2—2023
已注冊的算法:
雖然Digest字符串的算法組件允許使用各種加密算法,但兼容的實現(xiàn)應(yīng)該使用SHA-256。
算法標(biāo)識符和摘要之間存在一種依賴關(guān)系。算法標(biāo)識符指定了用于計算摘要的具體哈希算法,而摘
要則是通過應(yīng)用該算法對數(shù)據(jù)進行計算得到的。算法標(biāo)識符和摘要的組合可以唯一地標(biāo)識工業(yè)軟件容
器鏡像中的各個組成部分,并驗證其完整性和正確性。
表3規(guī)定了目前定義的算法標(biāo)識符:
表3算法標(biāo)識符
算法標(biāo)識符算法
sha256SHA-256
sha512SHA-512
一個可用的算法如果沒有出現(xiàn)在上面的圖標(biāo)當(dāng)中,應(yīng)當(dāng)被提交到本規(guī)范當(dāng)中以注冊。
a)SHA-256
SHA-256是一種抗碰撞散列函數(shù),選擇它是因為它具有普遍性、合理的大小和安全特性。實現(xiàn)上必
須實現(xiàn)SHA-256Digest來驗證描述符。
當(dāng)算法標(biāo)識符為sha256時,編碼部分必須匹配/[a-f0-9]64/。注意,此處禁止使用[A-F]。
b)SHA-512
SHA-512是一種抗碰撞散列函數(shù),在某些CPU上比SHA-256性能更好。實現(xiàn)上實現(xiàn)SHA-512Digest
來驗證描述符。
當(dāng)算法標(biāo)識符為sha512時,編碼部分必須匹配/[a-f0-9]128/。注意,此處禁止使用[A-F]。
6.1.4嵌入內(nèi)容
在很多環(huán)境下,當(dāng)通過網(wǎng)絡(luò)下載內(nèi)容,將描述符解析為其內(nèi)容具有可測量的固定的“往返”延遲成
本。對巨大的二進制對象,固定的成本通常是不重要的,事實上大部分時間會被花費在獲取內(nèi)容上。對
非常小的二進制對象,固定的成本是非常重要的。
實現(xiàn)方式會選擇向描述符中直接嵌入小部分內(nèi)容以避免往返成本。實現(xiàn)當(dāng)中絕對不能在填充數(shù)據(jù)
字段會修改現(xiàn)有摘要的情況下。注冊表絕對不能在上傳的清單中任意填充data字段,因為這會修改這
些清單的摘要。相反,客戶端在上傳清單之前填充data字段,因為注冊表中清單的還沒有摘要。
在決定是否嵌入數(shù)據(jù)時,實現(xiàn)應(yīng)該考慮可移植性,因為眾所周知,一些提供者拒絕接受或解析超過
一定大小的清單。
6.2鏡像布局
6.2.1布局內(nèi)容
工業(yè)軟件容器鏡像布局是工業(yè)軟件容器鏡像內(nèi)容可尋址Blob和位置可尋址引用(refs)的目錄結(jié)
構(gòu)。此布局可能用于各種不同的傳輸機制:存檔格式(示例:tar、zip)、共享文件系統(tǒng)環(huán)境(示例:
nfs學(xué)兔兔)或網(wǎng)絡(luò)文件獲取(示例:http、ftp)。給定鏡像布局和參考,工具可以通過以下方式創(chuàng)建符合工標(biāo)準下載
業(yè)軟件容器鏡像運行規(guī)范的可執(zhí)行文件包:
a)按照索引查找清單,也可能通過鏡像索引查找清單
b)按指定順序應(yīng)用鏡像層文件系統(tǒng)變更集
鏡像布局如下:
6
T/SIA037.2—2023
a)blobs目錄
1)包含內(nèi)容可尋址的blob
2)一個blob沒有架構(gòu),應(yīng)當(dāng)被認為是不透明的
3)目錄必須存在并且可以為空
b)layout文件
1)必須存在
2)內(nèi)容必須是JSON對象
3)必須包含imageLayoutVersion字段
4)可能包含其他字段
c)index.json文件
1)必須存在
2)必須是一個鏡像索引JSON對象
6.2.2二進制大對象
a)blobs子目錄中的對象名稱由每個哈希算法的目錄組成,其子目錄將包含實際內(nèi)容。
b)blobs/<alg>/<encoded>的內(nèi)容必須匹配摘要<alg>:<encoded>(每個描述符引用)。
c)<alg>和<encoded>的條目名稱的字符集必須匹配描述符中描述的相應(yīng)語法元素。
d)blobs目錄可能包含未被任何refs引用的blob。
e)blobs目錄可能缺少引用的blob,在這種情況下,缺少的blob應(yīng)該由外部blob存儲來完
成。
6.2.3布局文件
此文件可以用作開放容器鏡像布局基礎(chǔ)的標(biāo)記,并提供正在使用的鏡像布局版本。在對布局進行更
改時,imageLayoutVersion值將與工業(yè)軟件容器鏡像規(guī)范版本保持一致,并將固定給定版本,直到需
要對鏡像布局進行更改。
6.2.4索引文件
這個必要文件是鏡像布局的引用和描述符的入口點。鏡像索引是多描述符入口點。
該索引提供了一個已建立的路徑(/index.json)以具有鏡像布局的入口點并發(fā)現(xiàn)輔助描述符。
a)該規(guī)范的未來版本可能使用不同的媒介類型(即新的版本的格式)。
b)遇到的未知媒介類型應(yīng)當(dāng)被安全地忽略。
6.3鏡像清單
6.3.1鏡像清單
鏡像清單有三個主要目標(biāo)。第一個目標(biāo)是內(nèi)容可尋址鏡像,通過支持鏡像模型,該模型鏡像的配置
可以被哈希以生成鏡像及其組件的唯一ID。第二個目標(biāo)是通過“fatmanifest”允許多架構(gòu)鏡像,該“fat
學(xué)兔兔manifest”引用特定平臺版本的鏡像清單。在工業(yè)軟件容器鏡像中,這被定義在鏡像索引。第三個目標(biāo)標(biāo)準下載
是可轉(zhuǎn)換為工業(yè)軟件容器鏡像運行時規(guī)范。不同于鏡像索引,鏡像清單包含關(guān)于一組鏡像的信息,這些
索引可跨越各種體系結(jié)構(gòu)和操作系統(tǒng)。鏡像清單提供配置和一組層級對于單個容器鏡像用于一個特定
的架構(gòu)和操作系統(tǒng)。
7
學(xué)兔兔標(biāo)準下載
T/SIA037.2—2023
6.3.2鏡像清單屬性描述
a)schemaVersionint
此屬性為必選屬性,需要指定鏡像清單架構(gòu)版本。對于這個版本的規(guī)范,這個字段的值是2,
確保向后兼容。該字段的值不會改變。
b)mediaTypestring
此屬性應(yīng)當(dāng)被使用并且與本規(guī)范的早期版本和其他類似的外部格式保持兼容。
c)subjectdescriptor
此屬性是可選的用于指定另一個描述符清單。
d)annotationsstring-stringmap
此屬性是可選擇的包含鏡像清單的任意元數(shù)據(jù)。
6.3.3制品清單
制品清單規(guī)范的目標(biāo)是定義內(nèi)容可尋址的制品,以便將它們與旁邊的容器鏡像一起存儲在注冊表
中。與工業(yè)軟件容器鏡像一樣,工業(yè)軟件容器鏡像制品可以由其清單的散列引用。與工業(yè)軟件容器鏡像
不同,工業(yè)軟件容器鏡像制品不被任何容器運行時使用。
與容器鏡像一起存儲的制品的例子有軟件材料清單(SBOM)、數(shù)字簽名、來源數(shù)據(jù)、供應(yīng)鏈認證、掃
描結(jié)果和Helm圖表。
制品清單屬性描述
a)mediaTypestring
必須使用該屬性。
b)artifactTypestring
應(yīng)該使用此屬性并包含所引用制品的mediaType。
c)layersarrayofobjects
這個可選屬性是一個對象數(shù)組,數(shù)組中的每一項都必須是一個描述符。每個描述符表示任何IANA
媒介類型的制品。列表可以為某些制品類型(如掃描結(jié)果)排序。
d)subjectdescriptor
此可選屬性指定另一個清單的描述符。
e)annotationsstring-stringmap
此可選屬性包含制品清單的額外元數(shù)據(jù)。
6.4鏡像索引
6.4.1鏡像索引屬性
鏡像索引是一種更高級的鏡像清單,它指向特定的鏡像清單,適用于一個或多個平臺。雖然鏡像索
引的使用對于使用者來說是可選的,但是學(xué)會使用索引可以有效降低檢索鏡像的時間。下面是其中的屬
性字段:學(xué)兔兔標(biāo)準下載
a)schemaVersionint
此屬性為必選屬性,它指定鏡像清單架構(gòu)版本。對于這個版本的規(guī)范,這必須是2以確保與舊版本
的向后兼容。該字段的值不會改變。
b)mediaTypestring
8
T/SIA037.2—2023
這個屬性應(yīng)當(dāng)配合兼容性矩陣使用以支持舊版本規(guī)范以及其他類似的外部格式。
c)manifestsarrayofobjects
此屬性為必須屬性,包含特定平臺的清單列表。雖然這個屬性必須存在,但數(shù)組的大小可以為零。
清單中的每個對象都包含一組描述符屬性,并具有以下附加屬性和限制:
d)annotationsstring-stringmap
此OPTIONAL屬性包含鏡像索引的任意元數(shù)據(jù)。此可選屬性必須使用注釋規(guī)則。
6.4.2平臺變體
表4規(guī)定了CPU變體,如果CPU變體不存在于表中,應(yīng)該提交到本規(guī)范中進行標(biāo)準化。
表4CPU變體
ISA/ABI架構(gòu)變體
ARM32-bitv6armv6
ARM32-bitv7armv7
ARM32-bitv8armv8
ARM64-bitv8arm64v8
6.5鏡像配置
工業(yè)軟件容器鏡像是由根文件系統(tǒng)更改的有序集合以及容器運行時中會使用的相應(yīng)執(zhí)行參數(shù)組成
的。在工業(yè)軟件容器鏡像規(guī)范中,配置是指對工業(yè)軟件容器鏡像的各項參數(shù)、設(shè)置和環(huán)境進行定義和調(diào)
整的過程。配置在工業(yè)軟件容器鏡像中起著關(guān)鍵的作用。它決定了容器在部署和運行時的行為和特性,
包括應(yīng)用程序的行為、依賴關(guān)系、運行時環(huán)境的設(shè)置等。通過合理的配置,可以實現(xiàn)容器鏡像的可定制
性、靈活性和可擴展性,使其適應(yīng)不同的應(yīng)用場景和需求。配置的目的是為了滿足特定的需求和要求。
通過配置,可以實現(xiàn)工業(yè)軟件容器鏡像的定制化部署,根據(jù)不同的業(yè)務(wù)需求和環(huán)境要求進行靈活的設(shè)置
和調(diào)整。下文規(guī)定鏡像配置屬性字段:
a)createdstring,OPTIONAL
創(chuàng)建鏡像的日期時間。
b)authorstring,OPTIONAL
提供創(chuàng)建并負責(zé)維護鏡像的個人或?qū)嶓w的姓名和/或電子郵件地址。
c)osstring,REQUIRED
鏡像運行的操作系統(tǒng)的名稱。
d)os.versionstring,OPTIONAL
此OPTIONAL屬性指定被引用的blob目標(biāo)的操作系統(tǒng)版本。
e)os.featuresarrayofstrings,OPTIONAL
學(xué)兔兔這個OPTIONAL屬性指定了一個字符串?dāng)?shù)組,每個字符串都指定了一個必選的標(biāo)準下載OS特性。
f)variantstring,OPTIONAL
指定CPU架構(gòu)的變體。配置應(yīng)該使用,并且實現(xiàn)應(yīng)該理解平臺變量表中列出的變量值。
g)configobject,OPTIONAL
在使用該鏡像運行容器時應(yīng)作為基礎(chǔ)的執(zhí)行參數(shù)。這個字段可以是null,在這種情況下,任何執(zhí)
行參數(shù)都應(yīng)該在創(chuàng)建容器時指定。
9
學(xué)兔兔標(biāo)準下載
T/SIA037.2—2023
1)Userstring,OPTIONAL
用戶名或UID,這是一個平臺特定的結(jié)構(gòu),允許具體控制進程以哪個用戶身份運行。當(dāng)創(chuàng)建容器時
沒有指定該值時,這將作為一個默認值使用。
2)ExposedPortsobject,OPTIONAL
一組要從運行此鏡像的容器中公開的端口。它的鍵可以是以下格式。port/tcp,port/udp,port,
如果沒有指定,默認協(xié)議為tcp。這些值作為默認值,在創(chuàng)建容器時與任何指定的值合并。
3)Envarrayofstrings,OPTIONAL
條目格式為:‘VARNAME=VARVALUE’。這些值作為默認值,在創(chuàng)建容器時與任何指定的值合并。
4)Entrypointarrayofstrings,OPTIONAL
一個參數(shù)列表,用作容器啟動時要執(zhí)行的命令。這些值作為默認值,可以由創(chuàng)建容器時指定的入口
取代。
5)Cmdarrayofstrings,OPTIONAL
容器的entrypoint的默認參數(shù)。這些值作為默認值,可以由創(chuàng)建容器時指定的任何值來代替。如
果沒有指定Entrypoint值,那么Cmd數(shù)組的第一個條目就應(yīng)該被解釋為要運行的可執(zhí)行文件。
6)Volumesobject,OPTIONAL
一組描述進程寫入容器實例特定數(shù)據(jù)的目錄。注意:這個JSON結(jié)構(gòu)值是不尋常的,因為它是
map[string]結(jié)構(gòu)的直接JSON序列化,并在JSON中表示為將其鍵映射到一個空對象。
7)WorkingDirstring,OPTIONAL
設(shè)置容器中入口進程的當(dāng)前工作目錄。這個值作為默認值,可以由創(chuàng)建容器時指定的工作目錄代替。
8)Labelsobject,OPTIONAL
該字段包含容器的任意元數(shù)據(jù)。這個屬性必須使用注釋規(guī)則
9)StopSignalstring,OPTIONAL
該字段包含將被發(fā)送到容器中作為退出的系統(tǒng)調(diào)用信號。該信號可以是一個格式為SIGNAME的信
號名稱,示例:SIGKILL或SIGRTMIN+3。
10)Memoryinteger,OPTIONAL
此屬性保留供使用,以保持兼容性。
11)MemorySwapinteger,OPTIONAL
此屬性保留供使用,以保持兼容性。
12)CpuSharesinteger,OPTIONAL
此屬性保留供使用,以保持兼容性。
13)Healthcheckobject,OPTIONAL
此屬性保留供使用,以保持兼容性。
h)rootfsobject,REQUIRED
rootfs鍵引用鏡像所使用的層內(nèi)容地址。
學(xué)兔兔1)typestring,REQUIRED標(biāo)準下載
必須被設(shè)置為layers。如果在驗證或解壓鏡像時遇到一個未知的值,實現(xiàn)必須產(chǎn)生一個錯誤。
2)diff_idsarrayofstrings,REQUIRED
一個層內(nèi)容哈希值(‘DiffIDs’)的數(shù)組,按從頭到尾的順序排列。
i)historyarrayofobjects,OPTIONAL
描述了每個層的歷史。數(shù)組從第一個到最后一個排序。該對象有以下字段。
10
T/SIA037.2—2023
1)createdstring,OPTIONAL
創(chuàng)建的日期時間。
2)authorstring,OPTIONAL
構(gòu)建點的作者。
3)created_bystring,OPTIONAL
創(chuàng)建該層的命令。
4)commentstring,OPTIONAL
創(chuàng)建層時設(shè)置的一個自定義信息。
5)empty_layerboolean,OPTIONAL
這個字段用來標(biāo)記歷史項目是否創(chuàng)建了一個文件系統(tǒng)的差異。如果這個歷史項目不對應(yīng)于rootfs
部分的實際層,它被設(shè)置為true。
ImageJSON結(jié)構(gòu)中的任何額外字段都被認為是特定的實現(xiàn),并且必須被任何無法解釋它們的實現(xiàn)
所忽略。
JSON格式化(空白字符)是可選的,實現(xiàn)可以使用沒有空白字符的緊湊JSON。
6.6鏡像注解
在工業(yè)軟件容器鏡像規(guī)范中,注解是指在容器鏡像中添加額外的元數(shù)據(jù)和說明信息的標(biāo)記。注解通
過鍵值對的形式將相關(guān)信息與容器鏡像關(guān)聯(lián)起來,提供更詳細的描述和解釋。
注解在工業(yè)軟件容器鏡像中具有重要的作用。首先,注解提供了關(guān)于容器鏡像的補充說明和文檔化
信息。通過注解,可以記錄容器鏡像的版本、作者、創(chuàng)建日期、修改歷史等關(guān)鍵信息,幫助用戶了解和
識別容器鏡像的屬性和來源。
其次,注解可以提供與容器鏡像相關(guān)的其他關(guān)鍵信息,像所需的配置、環(huán)境變量、依賴項等。這些
注解可以幫助用戶正確理解和配置容器鏡像,確保容器能夠正常運行并滿足特定的要求。
此外,注解還可以用于實現(xiàn)工業(yè)軟件容器鏡像的元數(shù)據(jù)管理和自動化處理。通過定義一致的注解格
式和命名規(guī)則,可以實現(xiàn)對容器鏡像的自動化處理和管理。示例:可以編寫腳本或工具根據(jù)注解信息進
行容器鏡像的驗證、部署和監(jiān)控。
該規(guī)范的幾個組件,如鏡像和描述符,都具有可選的注釋屬性,其格式是通用的,并在本節(jié)中定義。
此屬性包含任意元數(shù)據(jù)。
a)注釋必須是一個Map,其中Key和Value都必須是字符串。
b)雖然Value必須存在,但它可能是一個空字符串。
c)Key在這個Map中必須是唯一的,最佳做法是Key以名字空間方式命名。
d)Key應(yīng)當(dāng)使用反向域名符號來命名。
e)如果沒有注釋,那么這個屬性必須不存在或為空Map。
學(xué)兔兔標(biāo)準下載
11
學(xué)兔兔標(biāo)準下載
T/SIA037.2—2023
表5給出一部分前綴注解:
表5前綴注解
imageprefixlabel-schemaprefixCompatibilitynotes
createdbuild-date兼容的
urlurl兼容的
sourcevcs-url兼容的
versionversion兼容的
revisionvcs-ref兼容的
vendorvendor兼容的
titlename兼容的
descriptiondescription兼容的
documentationusage兼容的
authors無兼容的
licenses無兼容的
無兼容的
7設(shè)計考量
7.1可擴展性
正在讀取/處理鏡像Manifest或鏡像索引的實現(xiàn)在遇到未知屬性時不得產(chǎn)生錯誤。相反,他們必須
忽略未知屬性。
7.2規(guī)范化
以下明確規(guī)范化的一些要求:
a)工業(yè)軟件容器鏡像是內(nèi)容可尋址的。
b)內(nèi)容可尋址存儲的一個好處是易于重復(fù)數(shù)據(jù)刪除。
c)很多鏡像同時依賴于某一個層,但存儲中只會有一個blob。
d)使用不同的序列化,相同的層將具有不同的Hash,并且如果引用該層的兩個版本,則將有兩
個具有相同語義內(nèi)容的blob。
e)為了實現(xiàn)高效的存儲,對blob的內(nèi)容進行序列化的實現(xiàn)應(yīng)當(dāng)使用規(guī)范的序列化。
f)這增加了不同實現(xiàn)可以將相同語義內(nèi)容推送到存儲而不創(chuàng)建冗余blob的機會。
7.3學(xué)兔兔JSON標(biāo)準下載
JSON內(nèi)容應(yīng)該被序列化為規(guī)范的JSON。在工業(yè)軟件容器鏡像格式規(guī)范媒介類型中,所有以+json
結(jié)尾的類型都包含JSON內(nèi)容。
7.4EBNF
12
T/SIA037.2—2023
對于本規(guī)范中描述的字段格式,使用EBNF的有限子集,類似于XML規(guī)范使用的。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 昆山鈔票紙業(yè)有限公司2026年度招聘備考題庫附答案詳解
- 2025年四川大學(xué)華西樂城醫(yī)院招聘18人備考題庫有答案詳解
- 2025年哈爾濱市天元學(xué)校招聘臨聘教師備考題庫及答案詳解參考
- 2025年蒙晟建設(shè)有限公司公開招聘緊缺專業(yè)人員的備考題庫及完整答案詳解1套
- 2025年四川省筠連縣公證處公開招聘公證員2人備考題庫及一套參考答案詳解
- 功能性腹脹中醫(yī)診療專家共識總結(jié)2026
- 漸變風(fēng)年會慶典晚會表彰
- 《植物工廠多層立體栽培模式光環(huán)境調(diào)控與植物生長周期調(diào)控研究》教學(xué)研究課題報告
- 2025年張家港市第三人民醫(yī)院自主招聘編外合同制衛(wèi)技人員備考題庫附答案詳解
- 2025年浙江省中醫(yī)院、浙江中醫(yī)藥大學(xué)附屬第一醫(yī)院(第一臨床醫(yī)學(xué)院)公開招聘人員備考題庫及一套完整答案詳解
- 2025年國家開放大學(xué)管理英語3作業(yè)答案
- 乳腺癌全程、全方位管理乳腺癌患者依從性及心理健康管理幻燈
- 四川省高職單招汽車類《汽車機械基礎(chǔ)》復(fù)習(xí)備考試題庫(含答案)
- 2024CSCO腫瘤患者靜脈血栓防治指南解讀
- MOOC 中國文化概論-華南師范大學(xué) 中國大學(xué)慕課答案
- 博物館保安服務(wù)投標(biāo)方案(技術(shù)方案)
- 浙人美版美術(shù)五年級上冊期末復(fù)習(xí)資料整理
- 年產(chǎn)20萬噸氯乙烯工藝設(shè)計
- GB/T 42737-2023電化學(xué)儲能電站調(diào)試規(guī)程
- 人民網(wǎng)輿情監(jiān)測室發(fā)布2023年互聯(lián)網(wǎng)輿情分析報告
- 博士論文的寫作
評論
0/150
提交評論