Ответ 1
Если у вас есть Docker Registry, поддерживающий схему манифеста 2, вы можете просто загрузить манифест существующего изображения под новым тегом.
Например, предположим, что вы хотите пометить последнюю версию образа busybox
. Этапы:
Загрузить существующий манифест:
curl '<registry_url>/v2/mybusybox/manifests/latest' \
-H 'accept: application/vnd.docker.distribution.manifest.v2+json' \
> manifest.json
Здесь будет выглядеть манифест (обратите внимание, что schemaVersion равно 2):
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/octet-stream",
"size": 1459,
"digest": "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749"
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 667590,
"digest": "sha256:8ddc19f16526912237dd8af81971d5e4dd0587907234be2b83e249518d5b673f"
}
]
}
Загрузите манифест под новый тег:
curl -XPUT '<registry_url>/v2/mybusybox/manifests/new_tag' \
-H 'content-type: application/vnd.docker.distribution.manifest.v2+json' \
-d '@manifest.json'
Подробное пошаговое руководство дается в post.