hostprofi.ru
Подобрать хостинг
Термин·буква D

Docker registry

краткое определение

Docker Registry — хранилище Docker-образов. Публичный Docker Hub содержит миллионы образов; приватные реестры (Harbor, GitLab Registry, AWS ECR) хранят образы компании без публичного доступа.

Docker Registry — сервер для хранения и распространения Docker-образов. Образы загружаются командой docker push и скачиваются командой docker pull. Регистри — обязательный компонент CI/CD-пайплайна: Jenkins/GitLab CI собирает образ, пушит в регистри, сервер деплоя пуллит и запускает.

Как работает

Docker Registry реализует API на базе HTTP/HTTPS (Distribution API v2, RFC-подобная спецификация OCI). Образ хранится как набор слоёв (blobs) и манифест (JSON с описанием слоёв и конфигурации). При docker pull nginx:1.25: клиент запрашивает манифест образа nginx с тегом 1.25, получает список хешей слоёв, скачивает только отсутствующие слои.

Теги — мутабельные указатели на конкретный манифест. nginx:latest сегодня и через месяц может указывать на разные образы. Для воспроизводимых деплоев рекомендуется использовать неизменяемый SHA-256 digest: nginx@sha256:abc123....

Garbage Collection — механизм очистки несвязанных слоёв. В Docker Hub ненужные слои удаляются автоматически. В приватных реестрах (Harbor, Registry v2) GC запускается вручную или по расписанию.

Виды реестров

РеестрТипОсобенности
Docker HubПубличный/приватный5 млн+ образов, rate limit для анонимов
GitHub Container RegistryПубличный/приватныйИнтегрирован с GitHub Actions
GitLab RegistryПриватныйВстроен в GitLab CI/CD
AWS ECRПриватный (облако)Интеграция с EKS, IAM-авторизация
HarborSelf-hostedOpen-source, сканирование уязвимостей
Distribution (Registry v2)Self-hostedБазовый open-source, легковесный

История

Docker Hub запущен одновременно с Docker в 2013 году. Distribution (open-source реестр) выпущен Docker в 2015 году. OCI Distribution Spec (стандарт API реестра) утверждён в 2021 году — теперь любой совместимый реестр работает со стандартным Docker-клиентом. Harbor, созданный VMware в 2016 году, передан CNCF в 2018 году и стал de facto стандартом корпоративных реестров.

На что обращать внимание

Docker Hub с 2020 года ввёл rate limiting для анонимных пуллов: 100 pull/6ч с одного IP. На CI/CD-серверах это приводит к ошибкам. Решение: авторизоваться в Docker Hub (docker login) или использовать зеркало (mirror). В России Docker Hub периодически испытывает проблемы с доступностью — рекомендуется иметь приватный реестр или зеркало на собственном VPS.

Self-hosted Docker registry

Развернуть приватный реестр на VPS: docker run -d -p 5000:5000 registry:2. Для production добавьте HTTPS (обязательно — Docker не пушит в HTTP-реестр без явного указания insecure-registries), аутентификацию через htpasswd и хранение образов на S3 или NFS. Популярные self-hosted альтернативы Docker Hub: Harbor (CNCF, с vulnerability scanning, RBAC), Nexus Repository, GitLab Container Registry (если используете GitLab). Размер хранилища: образы nginx ~50 МБ, PHP — ~80 МБ, полный stack — 500 МБ — 2 ГБ типично.

Другие термины