參考鏈接:/engine/reference/command line/manifest/# push-to-an-insert-registry。
?/p/fad6b6fb4599
docker manifest命令本身什麽也不做。為了操作清單或清單列表,必須有壹個子命令。
1.清單是壹個包含圖像信息的文件,例如圖層、大小和摘要。docker manifest命令還為用戶提供了附加信息,例如用於構建映像的操作系統和體系結構。
2.清單列表是通過設置壹個或多個鏡像名稱創建的鏡像層列表,這些鏡像名稱可以在docker pull和docker run命令中用作鏡像名稱。
理想情況下,清單是根據相同功能和不同os/arch組合的鏡像構建的。因此,manifest通常被稱為“多架構鏡像”。
但是,用戶可以創建壹個指向兩個鏡像的清單,然後為用戶提供壹個唯壹的鏡像名稱。如:壹個用於amd64上的Windows,壹個用於amd上的darwin。
從Docker registry v2.3和Docker 1.10開始,Docker hub可以拉多架構Docker鏡像。
清單檢查-幫助
用法:docker MANIFEST inspect[OPTIONS][MANIFEST _ LIST]清單
顯示鏡像的清單或清單列表
選項:
-幫助用法
-沒有安全感?允許與不安全的註冊表通信。
-v,-羅嗦?其他信息輸出包括圖層和平臺。
用法:docker MANIFEST create MANIFEST _ LIST MANIFEST[MANIFEST...]
創建壹個本地清單列表,用於註釋和推送到註冊表
創建用於註釋的本地清單,並將其推入鏡像存儲庫。
選項:
-a,-修改現有的載貨清單。
-沒有安全感?允許與不安全的註冊表通信。
-幫助用法
用法:docker清單註釋[選項] MANIFEST_LIST清單
向本地鏡像的清單中添加附加信息。
選項:
?弓弦?設置架構
?-幫忙?使用
?- os字符串?設置操作系統
?-OS-versionstring設置操作系統版本。
?- os-features字符串片?設置操作系統功能
?-變體字符串?設置架構變體
用法:docker MANIFEST push[OPTIONS]MANIFEST _ LIST
將清單列表推送到存儲庫
選項:
?-幫忙?使用
?-不安全允許推送到不安全的倉庫。
?-p-凈化?推送後刪除本地庫存列表。
manifest命令只與Docker存儲庫交互。因此,它無法向引擎查詢允許的不安全倉庫列表。為了允許CLI與不安全的倉庫進行交互,壹些docker manifest命令帶有-insecurity標誌。對於create查詢註冊表的每個事務(例如),-unsecured必須指定標誌。此標誌告訴CLI此註冊表調用可能會忽略安全問題,如缺少證書或自簽名證書。類似地,當manifest被推送到不安全的倉庫時,必須指定這個標誌。如果不與不安全的倉庫壹起使用,inventory命令將不會找到滿足默認要求的倉庫。
1.檢查鏡像清單對象。
``
$碼頭工人清單檢查hello-world
{
“schema version”:2,
" media type ":" application/vnd . docker . distribution . manifest . v2+JSON ",
"配置":{
" media type ":" application/vnd . docker . container . image . v 1+JSON ",
【尺寸】:1520,
《文摘》:" sha 256:1815c 82652 c 03 bfd 8644 afda 26 FB 184 F2 ed 891d 921b20a 0703 b 46768 f 9755 c 57 "
},
"層":[
{
" media type ":" application/vnd . docker . image . root fs . diff . tar . gzip ",
【尺寸】:972,
《文摘》:" sha 256:b 04784 FBA 78d 739 b 526 e 27 EDC 02 a 5a 8 CD 07 b 1052 e 9283 F5 fc 155828 F4 b 614c 28 "
}
]
}
``
2.檢查鏡像清單並獲取os/arch信息。
docker manifest inspect命令有壹個可選的- verbose標誌,它可以提供映像的名稱(Ref)、體系結構和os(平臺)。就像其他使用圖像名稱的docker命令壹樣,可以引用有標簽的圖像,也可以引用無標簽的圖像,也可以引用摘要(例如hello-world @ sha 256:F3 B3 b 28 a 45160805 bb 16542 c 9531888519430 e 96d 6 ffc 09d 728)。
這是使用- verbose標誌檢查鏡像清單的示例:
$ docker清單檢查-詳細hello-world
{
" Ref ":" docker . io/library/hello-world:最新",
《文摘》:“sha 256:F3 B3 b 28 a 45160805 bb 16542 c 9531888519430 e 9 e 6d 6 ffc 09d 72261 b 0d 26 ff 74 f”,
" SchemaV2Manifest": {
“schema version”:2,
" media type ":" application/vnd . docker . distribution . manifest . v2+JSON ",
"配置":{
" media type ":" application/vnd . docker . container . image . v 1+JSON ",
【尺寸】:1520,
《文摘》:" sha 256:1815c 82652 c 03 bfd 8644 afda 26 FB 184 F2 ed 891d 921b20a 0703 b 46768 f 9755 c 57 "
},
"層":[
{
" media type ":" application/vnd . docker . image . root fs . diff . tar . gzip ",
【尺寸】:972,
《文摘》:" sha 256:b 04784 FBA 78d 739 b 526 e 27 EDC 02 a 5a 8 CD 07 b 1052 e 9283 F5 fc 155828 F4 b 614c 28 "
}
]
},
“平臺”:{
“架構”:“amd64”,
“操作系統”:“linux”
}
}
3.創建並推送清單列表。
要創建清單列表,首先通過指定要包含在清單列表中的組成映像在本地創建清單列表。請記住,這已經被推送到鏡像倉庫,所以如果您想推送到docker鏡像倉庫以外的倉庫,您需要創建壹個帶有倉庫名稱或IP和端口的清單列表。這類似於標記鏡像並將其推送到外部鏡像庫。
創建清單列表的本地副本後,您可以選擇對其進行註釋。允許的註釋包括架構和操作系統(覆蓋映像的當前值)、操作系統功能和架構變體。
最後,需要將庫存列表推送到所需的鏡像bin。以下是對這三個命令的描述以及將它們組合在壹起的示例。
$ docker清單創建45 . 55 . 81.106:5000/coolapp:v 1 \
45 . 55 . 81.106:5000/coolapp-PPC 64 le-Linux:v 1 \
45 . 55 . 81.106:5000/coolapp-arm-Linux:v 1 \
45 . 55 . 81.106:5000/coolapp-amd64-Linux:v 1 \
45 . 55 . 81.106:5000/coolapp-amd64-windows:v 1
已創建清單列表45 . 55 . 81.106:5000/coolapp:v 1
$ docker清單註釋45 . 55 . 81.106:5000/coolapp:v 1 45 . 55 . 81.106:5000/coolapp-arm-Linux-archarm
$ docker清單推送45 . 55 . 81.106:5000/coolapp:v 1
已推送清單45 . 55 . 81.106:5000/coolapp @ sha 256:9701 EDC 932223 a66 e 49 DD 6 c 894 a 11 db 8 C2 cf 4 eccd 14f 1ec 105 a 623 BF 638
已推送清單45 . 55 . 81 . 106:5000/coolapp @ sha256:F3 B3 b 28 a 45160805 bb 16542 c 953188519430 E6 D6 ffc 09d 72261 b 0d 26 ff 74 f帶摘要:sha 256
推送的清單45 . 55 . 81 . 106:5000/coolapp @ sha 256:39dc 41c 658 cf 25 f 33681a 41310372 f 02728925 a 54 AAC 3598310 bfb 17770655538
使用摘要推送清單45 . 55 . 81 . 106:5000/coolapp @ sha 256:f 91b 145 cd4ac 800 b 28122313ae 988 AC 340 bb 3 f 1 E3 a4 CD 3e 59 a 3648650 f 3275
sha 256:050 b 213d 49d 7673 ba 35014f 21454 c 573 dcb EC 75254 a 08 f 4 a 7 c 34 f 66 a 47 c 06 ABA
檢查清單列表
$ docker清單檢查coolapp:v1
{
?“schema version”:2,
?" media type ":" application/vnd . docker . distribution . manifest . list . v2+JSON ",
?"清單":[
?{
" media type ":" application/vnd . docker . distribution . manifest . v2+JSON ",
【尺寸】:424,
《文摘》:“sha 256:f 67 DC C5 fc 786 f 04 f 0743 a bfe 0 ee 5 da e9 BD 8 caf 8 EFA 6 c 8144 f 7 F2 a 43889 DC 513b”,
“平臺”:{
“建築”:“手臂”,
“操作系統”:“linux”
}
?},
?{
" media type ":" application/vnd . docker . distribution . manifest . v2+JSON ",
【尺寸】:424,
《文摘》:“sha 256:b 64 ca 0 b 60356 a 30971f 098 c 92200 b 1271257 f 100 a55b 351e 6 bb 985638352 f3a”,
“平臺”:{
“架構”:“amd64”,
“操作系統”:“linux”
}
?},
?{
" media type ":" application/vnd . docker . distribution . manifest . v2+JSON ",
【尺寸】:425,
《文摘》:“sha 256:df 436846483 aff 62 bad 830 b 730 a 0 d3b 7731 BCF 98 ba 5e 470 a 8 BBB 8 e 9 e 346 E4 e 8”,
“平臺”:{
《建築》:“ppc64le”,
“操作系統”:“linux”
}
?},
?{
" media type ":" application/vnd . docker . distribution . manifest . v2+JSON ",
【尺寸】:425,
《文摘》:“sha 256:5 bb8e 50 aa 2 edd 408 BD F3 ddf 61 efb 7338 ff 34 a 07 b 762992 c 9432 f 1 c 02 fc 0 e 5 e 62”,
“平臺”:{
“架構”:“s390x”,
“操作系統”:“linux”
}
?}
?]
}
推到不安全的鏡像倉庫
$ docker清單創建-不安全的myprivateregistry.mycompany.com/repo/image:1.0 \
my private registry . my company . com/repo/image-Linux-PPC 64 le:1.0 \
my private registry . my company . com/repo/image-Linux-s390x:1.0 \
my private registry . my company . com/repo/image-Linux-arm:1.0 \
my private registry . my company . com/repo/image-Linux-armhf:1.0 \
my private registry . my company . com/repo/image-windows-amd64:1.0 \
my private registry . my company . com/repo/image-Linux-amd64:1.0
$ docker清單推送-不安全的myprivateregistry.mycompany.com/repo/image:tag