Skip to main content

Мигрировать Docker-образы в Container Registry

Вы можете копировать и синхронизировать Docker-образы в Container Registry Selectel с помощью regsync.

regsync копирует Docker-образы из одного реестра в другой или держит их синхронизированными по расписанию. Вы можете перенести все репозитории и теги в Container Registry Selectel, если исходный провайдер не умеет реплицировать образы во внешние реестры. Исходный реестр все это время продолжает работать, у него нет простоя.

  1. Установите regsync.

  2. Настройте regsync.

  3. Перенесите Docker-образы в Container Registry.

1. Установить regsync

Установите regsync. Используйте инструкцию Installing официальной документации regclient.org.

Запускать regsync можно как бинарный файл или в Docker-контейнере.

2. Настроить regsync

  1. Откройте CLI.

  2. Откройте файл regsync.yml в текстовом редакторе.

  3. Задайте параметры переноса Docker-образов. Полный справочник параметров в подразделе Configuration File инструкции [regsync] официальной документации.

Пример переноса из Yandex Container Registry в Container Registry Selectel
creds:
- registry: cr.yandex
user: iam
pass: '<iam_token>'
- registry: cr.selcloud.ru
user: token
pass: '<selectel_token>'

defaults:
parallel: <images_number>
schedule: "<schedule>"

sync:
- source: cr.yandex/REGISTRY_ID/myapp
target: cr.selcloud.ru/my-registry/myapp
type: repository
fastCopy: true
- source: cr.yandex/REGISTRY_ID/devops/backup-tool
target: cr.selcloud.ru/my-registry/devops/backup-tool
type: repository
fastCopy: true
- source: cr.yandex/REGISTRY_ID/project/backend
target: cr.selcloud.ru/my-registry/project/backend
type: repository
fastCopy: true

Укажите:

  • <iam_token> — IAM-токен пользователя Yandex Cloud;
  • <selectel_token> — IAM-токен пользователя Selectel. Можно скопировать в панели управления: в правом верхнем углу откройте меню (номер аккаунта) → Профиль → раздел Доступ → вкладка IAM-токен → нажмите Скопировать;
  • <images_number> — количество образов, которые нужно копировать одновременно;
  • <schedule> — расписание для режима server (cron). Например, 0 * * * * — раз в чаc. Расписание при необходимости задается отдельно для каждого источника.

3. Перенести Docker-образы

  1. Откройте CLI.

  2. Укажите режим работы regsync:

    • regsync once - синхронизирует все образы один раз и завершает работу;
    • regsync once --missing - копирует только теги, которых нет в целевом реестре. Подходит, если теги неизменяемые или устаревший контент не важен;
    • regsync check - показывает, какие образы нужно синхронизировать, но ничего не копирует;
    • regsync server - работает постоянно: сначала копирует все недостающие теги, потом синхронизирует по расписанию.
  3. Посмотрите, что нужно скопировать:

    regsync check -c regsync.yml
  4. Выполните первичное копирование:

    regsync once -c regsync.yml
  5. Если в исходный реестр до переключения продолжают приходить новые образы, включите синхронизацию по расписанию:

    regsync server -c regsync.yml
  6. Переключите CI/CD и манифесты приложений на адреса образов в Container Registry Selectel.

  7. Выполните финальную синхронизацию и остановите regsync.