Главная/Разработка/Docker registry
Self hosted Docker registry на своём сервере
Self hosted Docker registry поднимается одним контейнером registry:3 на порту 5000, но без пароля, HTTPS и очистки это только склад слоёв. Решите заранее, нужен ли вам такой склад, готовый Harbor или управляемый реестр контейнеров провайдера: у них разный объём обслуживания.
Ответ за 30 секунд
Один контейнер registry:3 с паролем и HTTPS подходит одной команде. Для ролей и сканирования берите Harbor, а если сервер обслуживать некому, облачный реестр от 80 ₽ в месяц. Без HTTPS и пароля свой реестр открыт всему интернету: сначала защита, потом образы.
Хранилище образов от 5 ГБ за 80 ₽ в месяц на 14 октября 2026, трафик до Kubernetes бесплатный.
Сколько стоит облачный реестр вместо своего Docker registry5000порт реестра в контейнере
от 80 ₽облачный реестр на 5 ГБ, 14.10.2026
105установок из маркетплейса на 14.10
01 · 1 мин
Три способа завести свой Docker registry#
| registry:3 | Harbor | Облачный реестр | |
|---|---|---|---|
| Что это | Минимальный сервер хранения образов | Реестр с интерфейсом, ролями и сканером | Готовый сервис провайдера |
| Интерфейс | Нет, нужен отдельный проект | Есть | Панель управления |
| Права доступа | Общий файл htpasswd | Проекты, роли, роботы для CI | Учётные данные сервиса |
| Сканирование | Нет | Trivy | Смотрите условия сервиса |
| Обслуживание | Сертификаты, диск, очистка | То же и обновления набора контейнеров | Не требуется |
В старых руководствах часто встречается тег registry:2, в актуальной документации проекта Distribution указан registry:3, его и берите для новой установки. Более тяжёлый вариант описан на странице установка Harbor.
02 · 1 мин
Как поднять registry:3 на VPS в Docker#
- Поставьте Docker с плагином Compose. Для реестра хватает самой скромной конфигурации, место нужно под слои образов.
- Создайте файл паролей. Реестр принимает в htpasswd только записи bcrypt, поэтому ключ
-Bобязателен. - Запустите контейнер по compose-файлу ниже. Порт 5000 открыт только на локальном адресе, снаружи реестр увидят через прокси.
- Проверьте с другого компьютера:
docker login registry.example.com, затемdocker push.
mkdir -p auth data
docker run --rm --entrypoint htpasswd httpd:2 -Bbn user ПАРОЛЬ > auth/htpasswd
services:
registry:
image: registry:3
restart: always
ports:
- '127.0.0.1:5000:5000'
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_STORAGE_DELETE_ENABLED: 'true'
volumes:
- ./data:/var/lib/registry
- ./auth:/auth
Данные образов лежат в /var/lib/registry. Если хочется поставить готовый образ реестра без консоли, он есть и в маркетплейсе Таймвеб Клауд: на 14 октября 2026 его выбрали 105 раз.
03 · 1 мин
HTTPS и пароль для вашего Docker registry#
Docker-клиент не отправит образы в реестр по голому HTTP, пока вы не внесёте адрес в список «небезопасных». Правильнее поставить перед реестром обратный прокси с настоящим сертификатом. В Caddy это три строки, сертификат он выпускает сам:
registry.example.com {
reverse_proxy 127.0.0.1:5000
}
Если вы уже работаете с Nginx, ограничение размера запроса надо снять, иначе большие слои оборвутся: Nginx. Для Kubernetes доступ к приватному реестру задают секретом imagePullSecrets, подробности в разборе Kubernetes.
04 · 1 мин
Интерфейс и очистка места в своём Docker registry#
У registry:3 нет веб-страницы со списком образов. Если нужен интерфейс, ставят отдельный проект, например Joxit docker-registry-ui, и разрешают ему доступ в настройках реестра. Альтернатива без лишней сборки: Harbor, где интерфейс встроен.
Удалённый образ не освобождает диск
Параметр REGISTRY_STORAGE_DELETE_ENABLED разрешает удалять манифесты, но слои остаются на диске, пока не запущена сборка мусора (garbage-collect). Команду и путь к конфигурации возьмите со страницы Garbage collection в документации, запускайте её при остановленной записи и после копии данных.
Копировать нужно каталог данных и файл паролей: порядок хранения копий в разборе сервер для бэкапов.
Инструмент · 1 мин
Сколько стоит облачный реестр вместо своего Docker registry#
Управляемый реестр контейнеров Таймвеб Клауд оплачивается по объёму хранилища. Цены на 14 октября 2026:
| Объём | Цена в месяц |
|---|---|
| 5 ГБ | 80 ₽ |
| 10 ГБ | 120 ₽ |
| 25 ГБ | 180 ₽ |
| 50 ГБ | 260 ₽ |
| 75 ГБ | 320 ₽ |
| 100 ГБ | 400 ₽ |
Трафик до Kubernetes провайдера бесплатный. Свой реестр на сервере MSK Ultra 30 (2 ГБ памяти, 30 ГБ диска, 3 000 ₽ в месяц) даёт больше свободы, но сертификаты, диск и очистку ведёте вы.
Какой реестр образов выбрать
Три ответа, и подсказка назовёт подходящий вариант
06 · 1 мин
Вопросы о своём Docker registry#
Чем self hosted Docker registry отличается от Harbor?
Реестр registry:3 только принимает и отдаёт образы, у него нет интерфейса и ролей. Harbor добавляет проекты, роли, сканирование Trivy, репликацию и очистку, но требует сервер от 4 ГБ памяти.
Как защитить свой Docker registry паролем?
Создать файл htpasswd с записями bcrypt (ключ -B), подключить его переменными REGISTRY_AUTH_HTPASSWD_PATH и REGISTRY_AUTH_HTPASSWD_REALM и вынести реестр за HTTPS-прокси. Вход потом идёт командой docker login.
Есть ли у registry:3 веб-интерфейс?
Нет. Для списка образов ставят отдельный проект с интерфейсом либо берут Harbor, в котором интерфейс уже есть.
Сколько стоит облачный реестр контейнеров вместо своего?
У Таймвеб Клауд хранилище на 5 ГБ стоит 80 ₽ в месяц, 100 ГБ стоит 400 ₽ (цены на 14 октября 2026). Сервер под свой реестр обслуживаете вы сами.
Как удалить образ из своего Docker registry и освободить место?
Включить REGISTRY_STORAGE_DELETE_ENABLED, удалить манифест через API, затем запустить garbage-collect при остановленной записи. Без сборки мусора слои остаются на диске.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Реестр контейнеров Таймвеб Клауд, timeweb.cloud/services/container-registry, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; Документация Distribution (Docker registry): развёртывание, distribution.github.io/distribution/about/deploying, проверено 15 октября 2026.
Храните образы рядом с серверами
Приватный реестр для Docker-образов и Helm-чартов, объём до 20 ТБ.
- 5 ГБ за 80 ₽ в месяц
- 100 ГБ за 400 ₽ в месяц
- Helm Charts
- Трафик до Kubernetes 0 ₽