Реестр контейнеров (Container Registry) — это хранилище для Docker-образов. Он позволяет загружать, хранить и распространять образы, которые используются при запуске контейнеров в Kubernetes и других окружениях.
Перейдите в раздел «Kubernetes» во вкладку «Реестры контейнеров» и нажмите кнопку «Создать» или «Добавить».
При создании укажите:
После создания отобразится токен — он используется для авторизации при работе с реестром. Токен отображается только один раз, обязательно сохраните его.
Если токен был утерян, вы можете выпустить новый в разделе «API и Terraform». Обратите внимание: токен предоставляет доступ ко всем реестрам, созданным в рамках вашего аккаунта. В случае компрометации токена удалите его в разделе «API и Terraform». Токен, созданный при создании реестра, начинается с registry-
.
Отображает:
Во вкладке «Репозитории» отображаются:
При нажатии на три точки рядом с образом или репозиторием вы можете:
В разделе вы можете изменить объем хранилища. Для этого нажмите «Изменить размер реестра», выберите нужный объем и сохраните изменения. Уменьшить размер нельзя.
Во вкладке «История» отображаются все действия, выполненные с реестром.
Для авторизации в реестре используйте команду, указанную в «Дашборде»:
docker login имя_реестра.registry.twcstorage.ru
После выполнения команды:
Перед загрузкой нужно назначить тег, включающий адрес реестра и имя репозитория:
docker tag имя_образа имя_реестра.registry.twcstorage.ru/имя_репозитория/имя_образа:тег
Замените:
имя_образа
— на название вашего локального образаимя_реестра
— на имя, указанное при создании реестраимя_репозитория
— на желаемое имя репозитория. При указании несуществующего имени, репозиторий с таким именем будет создан автоматически.тег
— на нужный тег, например 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
Артефакт будет загружен в текущую директорию.