Облачная платформаEvolution

Использование кеширующего реестра для зеркала Docker


С помощью этого руководства вы создадите кеширующий реестр и настроите его как docker-зеркало.

Вы будете использовать следующие инструменты:

  • Artifact Registry для хранения, совместного использования и управления Docker-образами, Deb-пакетами, RPM-пакетами, Helm-чартами и файлами любого типа (generic).

  • Docker Hub — облачная платформа для публикации, хранения и распространения Docker-образов.

Шаги:

  1. Создайте кеширующий реестр.

  2. Пройдите аутентификацию (для приватного реестра).

  3. Настройте Docker daemon (для публичного реестра).

  4. Примените настройки (для публичного реестра).

  5. Проверьте работу кеширующего реестра как зеркала.

Перед началом работы

  1. Зарегистрируйтесь в личном кабинете Cloud.ru.

    Если вы уже зарегистрированы, войдите под своей учетной записью.

  2. Подключите сервис Secret Management и укажите в нем данные для авторизации в стороннем хранилище.

    Данные нужно указать, если в стороннем хранилище есть приватные артефакты, которые доступны только при вводе имени пользователя и токена или пароля. Также указание авторизационных данных обязательно для доступа к любым артефактам стороннего хранилища Docker Hub.

  3. Установите Docker Desktop.

  4. Установите Docker CLI или используйте привычный терминал на вашем компьютере.

1. Создайте кеширующий реестр

  1. На верхней панели слева нажмите Кнопка с изображением девяти точек и выберите Контейнеры → Artifact Registry.

  2. Нажмите Создать реестр.

  3. Выберите формат реестра Docker.

  4. Укажите название реестра.

    Название реестра станет частью URI реестра, который будет использоваться для аутентификации и работы с образами.

  5. Выберите Публичный или Приватный тип доступа к реестру.

    Примечание

    В зависимости от выбранного типа доступа к реестру дальнейшие этапы настройки будут отличаться.

  6. Выберите тип реестра Кеширующий.

  7. В поле Источник выберите каталог пресетов или укажите адрес удаленного хранилища.

    Например, Docker Hub.

  8. В полях Логин и Пароль выберите авторизационные данные для доступа к стороннему хранилищу.

  9. Нажмите Создать.

2. Пройдите аутентификацию (для приватного реестра)

  1. Получите персональные ключи доступа, если планируете работать с репозиторием самостоятельно. Или создайте сервисный аккаунт и получите ключи доступа к нему, если планируете организовать командную работу.

  2. Выполните команду:

    docker login <registry_name>.cr.cloud.ru \
    -u "<key_id>" \
    -p "<key_secret>"

    Где:

    • <registry_name> — название реестра в Artifact Registry;

    • <key_id> — логин ключа доступа;

    • <key_secret> — пароль ключа доступа.

3. Настройте Docker daemon (для публичного реестра)

Чтобы команды автоматически шли в созданный реестр, настройте Docker daemon.

Примечание

Для успешного выполнения этого этапа:

  • Источником для кеширующего реестра должен быть Docker Hub.

  • Реестр Artifact Registry публичный, то есть Docker-реестр доступен без дополнительной аутентификации.

Для настройки Docker Daemon создайте или отредактируйте файл daemon.json. Например, в ОС Linux этот файл находится в директории /etc/docker/:

{
"registry-mirrors": [
"https://<registry_name>.cr.cloud.ru"
]
}

Где <registry_name> — название реестра в Artifact Registry.

Если в файле уже есть настройки, добавьте ключ в корневой JSON-объект:

{
"log-driver": "local",
"registry-mirrors": [
"https://<registry_name>.cr.cloud.ru"
],
"insecure-registries": []
}

Где <registry_name> — название реестра в Artifact Registry.

4. Примените настройки (для публичного реестра)

Сохраните конфигурацию и перезапустите Docker. Например, для ОС Linux выполните команду:

sudo systemctl restart docker

5. Проверьте работу кеширующего реестра как зеркала

Для публичного реестра выполните команды для запроса конфигурационных данных и скачивания артефакта:

docker info | sed -n '/Registry Mirrors:/,/Live Restore Enabled:/p'
docker pull ubuntu:24.04

Если в выводе команды docker info, в разделе Registry Mirrors появился созданный на первом этапе реестр — https://<registry_name>.cr.cloud.ru и артефакт скачался, реестр работает в режиме зеркала.

Для приватного реестра выполните команду для скачивания артефакта.

Примечание

При формировании команды явно укажите хост перед названием пакета.

Чтобы скачать официальный Docker-образ, в пути также явно укажите репозиторий library. При использовании CLI есть особенность: если манифест образа находится в папке library официального репозитория, это название становится именем репозитория на Docker Hub и скрывается для удобства.

Для образов организаций или пользователей указывать в пути library не нужно.

Например:

docker pull <registry_name>.cr.cloud.ru/library/ubuntu:24.04

Где <registry_name> — название реестра в Artifact Registry.

Или

docker pull <registry_name>.cr.cloud.ru/grafana/grafana:latest

Где <registry_name> — название реестра в Artifact Registry.

Если артефакт скачался, кеширующий реестр работает в режиме зеркала.

Использование реестра Artifact Registry в режиме зеркала зависит от принципа формирования команды для скачивания артефакта:

  • Для неявных запросов и настроенном Docker Daemon запросы автоматически идут через реестр Artifact Registry.

  • Для явно указанных сторонних реестров, запросы пойдут минуя реестр Artifact Registry.

    Например, в запросе на скачивание docker pull lscr.io/linuxserver/plex:latest при указании хоста lscr.io перед названием пакета linuxserver реестр Artifact Registry не участвует.

Результат

Вы научились:

  • создавать кеширующий реестр Artifact Registry;

  • настраивать кеширующий реестр для работы в режиме зеркала.