Клонировать образ из реестра докера в другой
У меня есть личный реестр с набором изображений. Это можно представить как хранилище приложений. Мое приложение может принимать эти приложения и запускать их на других компьютерах. Чтобы добиться этого, мое приложение сначала извлекает изображение из частного реестра, а затем копирует его в локальный реестр для дальнейшего использования.
Шаг как следует:
docker pull privateregistry:5000/company/app:tag
docker tag privateregistry:5000/company/app:tag localregistry:5000/company/app:tag
docker push localregistry:5000/company/app:tag
Потом на другой машине в моей сети:
docker pull localregistry:5000/company/app:tag
Есть ли способ эффективно скопировать изображение из хранилища в другое, не используя промежуточный клиент?
2 ответа
Вы можете использовать docker save
чтобы сохранить изображения в архиве tar, а затем скопировать tar на новый хост и использовать docker load
распаковать его.
прочтите ссылки ниже, чтобы узнать больше https://docs.docker.com/engine/reference/commandline/save/
Есть ли способ эффективно скопировать изображение из репозитория в другой, не используя промежуточный клиент-докер?
Да, сегодня это реализовано множеством инструментов. RedHat продвигает свой skopeo, у Google есть кран , а я работаю самостоятельно с regclient. Каждый из этих инструментов общается напрямую с сервером реестра, не нуждаясь в движке докеров. И, по крайней мере, с regclient (я не тестировал другие), они будут копировать только слои, которых еще нет в целевом реестре, избегая необходимости снова извлекать слои. Кроме того, вы можете переместить многоплатформенный образ, сохранив все доступные платформы, которые вы потеряете с
docker pull
поскольку это разыменовывает изображение для одной платформы.