hand-waveДокументация


Проект представляет собой реализацию контейнерного реестра, построенного на основе официальной спецификации Docker Registry, которая описана в документации distributionarrow-up-right. Основная цель данного проекта — предоставить функциональность для хранения и управления контейнерными образами с поддержкой стандартных операций, таких как загрузка, выгрузка, и поиск образов, аналогично Docker Hub, но с возможностью локальной настройки и развертывания.

Особенности

  • Совместимость с Docker Registry API: Полная поддержка Docker Registry HTTP API v2arrow-up-right, что позволяет использовать реестр с различными инструментами, поддерживающими стандарт Docker.

  • Безопасность: Реализованы основные механизмы аутентификации и авторизации для безопасного доступа к реестру.

  • Масштабируемость: Реализована возможность создавать несколько логических реестров для каждого проекта\стека.

  • Гибкость: Реализована подключение различных видов хранилищ (локальное или S3).

Стек технологий

  • Реализация основывается на Docker Distribution, что гарантирует совместимость с существующими инструментами экосистемы Docker.

  • Использован Go для реализации серверной логики.

  • Использован Solid.js для реализации клиентского UI.

Установка

Docker

docker volume create registry-data
docker run -d --restart unless-stopped -p 5050:5050 \
-v ./conf:/registry/conf.d:ro \
-v registry-data:/registry/var \
--name registry rosomilanov/container-registry

Docker compose

Сервис будет доступен по адресу http://192.168.1.38:5050/login

вход

Конфигурация

  • Конфигурация приложения осуществляется в декларативном стиле с помощью файла конфигурации config.yaml

  • Пример конфигурации для локального хранилища:

  • Пример конфигурации для S3 хранилища:

  • папку с файлом config.yaml необходимо смонтировать в контейнер по пути /registry/conf.d

Использование

  • создать реестр через веб-интерфейс:

репозиторий
  • авторизоваться в container registry:

  • собрать образ по правилу <адрес docker registry>/<название реестра>:<тег> - 192.168.1.38:5050/dev/alpine

  • загрузить образ:

  • скачать образ:

образ

Last updated