С помощью этого руководства вы создадите кеширующий реестр и настроите его как docker-зеркало.
Вы будете использовать следующие инструменты:
Artifact Registry для хранения, совместного использования и управления Docker-образами, Deb-пакетами, RPM-пакетами, Helm-чартами и файлами любого типа (generic).
Docker Hub — облачная платформа для публикации, хранения и распространения Docker-образов.
Шаги:
Зарегистрируйтесь в личном кабинете Cloud.ru.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Подключите сервис Secret Management и укажите в нем данные для авторизации в стороннем хранилище.
Данные нужно указать, если в стороннем хранилище есть приватные артефакты, которые доступны только при вводе имени пользователя и токена или пароля. Также указание авторизационных данных обязательно для доступа к любым артефактам стороннего хранилища Docker Hub.
Установите Docker Desktop.
Установите Docker CLI или используйте привычный терминал на вашем компьютере.
На верхней панели слева нажмите и выберите Контейнеры → Artifact Registry.
Нажмите Создать реестр.
Выберите формат реестра Docker.
Укажите название реестра.
Название реестра станет частью URI реестра, который будет использоваться для аутентификации и работы с образами.
Выберите Публичный или Приватный тип доступа к реестру.
В зависимости от выбранного типа доступа к реестру дальнейшие этапы настройки будут отличаться.
Выберите тип реестра Кеширующий.
В поле Источник выберите каталог пресетов или укажите адрес удаленного хранилища.
Например, Docker Hub.
В полях Логин и Пароль выберите авторизационные данные для доступа к стороннему хранилищу.
Нажмите Создать.
Получите персональные ключи доступа, если планируете работать с репозиторием самостоятельно. Или создайте сервисный аккаунт и получите ключи доступа к нему, если планируете организовать командную работу.
Выполните команду:
docker login <registry_name>.cr.cloud.ru \-u "<key_id>" \-p "<key_secret>"
Где:
<registry_name> — название реестра в Artifact Registry;
<key_id> — логин ключа доступа;
<key_secret> — пароль ключа доступа.
Чтобы команды автоматически шли в созданный реестр, настройте 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.
Сохраните конфигурацию и перезапустите Docker. Например, для ОС Linux выполните команду:
sudo systemctl restart docker
Для публичного реестра выполните команды для запроса конфигурационных данных и скачивания артефакта:
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;
настраивать кеширующий реестр для работы в режиме зеркала.