---
title: 'Мигрировать Docker-образы в Container Registry'
sidebar_label: 'Мигрировать Docker-образы в Container Registry'
sidebar_position: 10
description: 'Как работает миграция Docker-образов в Container Registry, как настроить миграцию и работать с ней'
---

import Formbricks from '@theme/MDXComponents/Formbricks'

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

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

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

1. [Установите regsync](#install-regsync).

2. [Настройте regsync](#configure-regsync).

3. [Перенесите Docker-образы в Container Registry](#transfer-docker-images).

## 1.  Установить regsync \{#install-regsync}

Установите regsync. Используйте инструкцию [Installing](https://regclient.org/install/) официальной документации [regclient.org](https://regclient.org/).

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

## 2. Настроить regsync \{#configure-regsync}

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

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

3. Задайте параметры переноса Docker-образов.
   Полный справочник параметров в подразделе [Configuration File](https://regclient.org/usage/regsync/#configuration-file) инструкции \[regsync] официальной документации.

<details>
  <summary>Пример переноса из Yandex Container Registry в Container Registry Selectel</summary>

  ```bash
  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. Можно скопировать в [панели управления](https://my.selectel.ru/profile/access/api-keys): в правом верхнем углу откройте меню (номер аккаунта) → **Профиль** → раздел **Доступ** → вкладка **IAM-токен** → нажмите **Скопировать**;
  * `<images_number>` — количество образов, которые нужно копировать одновременно;
  * `<schedule>` — расписание для режима server (cron). Например, `0 * * * *` — раз в чаc. Расписание при необходимости задается отдельно для каждого источника.
</details>

## 3. Перенести Docker-образы \{#transfer-docker-images}

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

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

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

3. Посмотрите, что нужно скопировать:

   ```bash
   regsync check -c regsync.yml
   ```

4. Выполните первичное копирование:

   ```bash
   regsync once -c regsync.yml
   ```

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

   ```bash
   regsync server -c regsync.yml
   ```

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

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

<Formbricks />
