Реестр контейнеров (Container Registry) — это хранилище для Docker-образов. Он позволяет загружать, хранить и распространять образы, которые используются при запуске контейнеров в Kubernetes и других окружениях.
Перейдите в раздел «Kubernetes» во вкладку «Реестры контейнеров» и нажмите кнопку «Создать» или «Добавить».
При создании укажите:
После создания отобразится токен — он используется для авторизации при работе с реестром. Токен отображается только один раз, обязательно сохраните его.
Если токен был утерян, вы можете выпустить новый в разделе «API и Terraform». Обратите внимание: если токен был создан для всех проектов, он предоставляет доступ ко всем реестрам на аккаунте. Если же токен был создан для конкретного проекта, доступ будет открыт ко всем реестрам внутри этого проекта. В случае компрометации токена удалите его в разделе «API и Terraform». Токен, созданный при создании реестра, начинается с registry-
.
Отображает:
Во вкладке «Репозитории» отображаются:
При нажатии на три точки рядом с образом или репозиторием вы можете:
В разделе вы можете изменить объем хранилища. Для этого нажмите «Изменить размер реестра», выберите нужный объем и сохраните изменения. Уменьшить размер нельзя.
Также в настройках можно изменить проект, к которому относится реестр.
Во вкладке «История» отображаются все действия, выполненные с реестром.
Для авторизации в реестре используйте команду, указанную в «Дашборде»:
docker login имя_реестра.registry.twcstorage.ru
После выполнения команды:
Перед загрузкой нужно назначить тег, включающий адрес реестра и имя репозитория:
docker tag имя_образа:тег имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_образа:тег
Замените:
имя_образа
— на название вашего локального образа. Если для образа используется тег, отличный от latest
, укажите его явным образом.имя_реестра
— на имя, указанное при создании реестра.имя_репозитория
— на желаемое имя репозитория. При указании несуществующего имени, репозиторий с таким именем будет создан автоматически.тег
— на нужный тег, например v1.0
или latest
.После тегирования загрузите образ:
docker push имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_образа:тег
Скачать образ можно по тегу:
docker pull имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_образа:тег
Или по хешу:
docker pull имя_реестра.registry.twcstorage.ru/имя_репозитория@sha256:хеш
Управлять реестром можно не только через панель управления, но и с помощью сторонних CLI-инструментов. Один из наиболее удобных — это regctl, кроссплатформенная утилита для работы с реестрами.
Скачайте бинарный файл:
curl -L https://github.com/regclient/regclient/releases/latest/download/regctl-linux-amd64 -o regctl
Сделайте его исполняемым:
chmod +x regctl
Переместите в системную директорию:
sudo mv regctl /usr/local/bin/regctl
Проверьте установку:
regctl version
Для авторизации выполните команду:
regctl registry login имя_реестра.registry.twcstorage.ru \
--user имя_пользователя \
--pass токен
Где:
имя_реестра
— имя, указанное при создании реестраимя_пользователя
— любое значениетокен
— токен, выданный при создании реестраПосле выполнения команды данные будут сохранены в ~/.regctl/config.json
, и повторная авторизация не потребуется.
Получить список всех доступных команд:
regctl
Вывести список всех репозиториев:
regctl repo ls имя_реестра.registry.twcstorage.ru
Просмотр тегов образа:
regctl tag ls имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_образа
Получение информации об образе:
regctl image inspect имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_образа:тег
Удаление образа:
regctl image rm имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_образа:тег
Реестр поддерживает спецификацию OCI (Open Container Initiative), поэтому вы можете хранить в нем не только Docker-образы, но и другие артефакты — например, Helm-чарты.
Сейчас для загрузки Helm-чартов можно использовать как helm, так и стороннюю утилиту oras.
Поддержка работы с OCI-реестрами появилась в helm начиная с версии 3.8.0 и считается стабильной с 3.9.0.
Для авторизации используйте команду:
helm registry login имя_реестра.registry.twcstorage.ru -u iam
В качестве пароля укажите токен, выданный при создании реестра.
Перед загрузкой необходимо упаковать чарт:
helm package ./имя_чарта
В результате будет создан архив, например, mychart-0.1.0.tgz
. Имя файла формируется на основе названия и версии из файла Chart.yaml
.
Для загрузки чарта используйте команду:
helm push имя_запакованного_чарта oci://имя_реестра.registry.twcstorage.ru/имя_репозитория
Helm автоматически определит имя чарта и версию из архива.
Для скачивания чарта воспользуйтесь командой:
helm pull oci://имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_чарта --version тег
Альтернативный способ загрузки чартов в реестр — с помощью утилиты oras, которая позволяет загружать любые файлы как артефакты OCI.
Перейдите на страницу релизов и скачайте архив для нужной ОС.
Либо воспользуйтесь wget
. Например, для Linux:
wget https://github.com/oras-project/oras/releases/download/v1.2.3/oras_1.2.3_linux_amd64.tar.gz
Распакуйте архив:
tar -xvzf oras_1.2.3_linux_amd64.tar.gz
Переместите бинарный файл:
sudo mv oras /usr/local/bin/
Проверьте, что утилита работает:
oras version
Перед использованием необходимо авторизоваться в реестре:
oras login имя_реестра.registry.twcstorage.ru
После выполнения команды:
В качестве имени пользователя укажите любое значение (например, имя реестра).
При запросе пароля введите токен, полученный при создании реестра.
Перед загрузкой необходимо упаковать чарт:
helm package ./имя_чарта
В результате будет создан архив, например, mychart-0.1.0.tgz
. Имя файла формируется на основе названия и версии из файла Chart.yaml
.
Теперь загрузите его в реестр:
oras push имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_чарта:тег имя_запакованного_чарта
Проверьте, что артефакт успешно загружен:
oras manifest fetch имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_чарта:тег
Команда выведет OCI-манифест с указанием типа артефакта, размера, хеша и других метаданных.
Для скачивания артефакта при помощи oras воспользуйтесь командой:
oras pull имя_реестра.registry.twcstorage.ru/helm/mychart:1.0
Артефакт будет загружен в текущую директорию.