Раздел 14. Registry
Registry — это хранилище образов и единственный механизм, связывающий сборку с развёртыванием. Всё, что касается воспроизводимости доставки, решается здесь: как назвать образ, какой тег считать неизменяемым, как убедиться, что развёрнут именно тот артефакт, который был собран и протестирован.
Раздел короткий, но содержит решения, которые тяжело менять задним числом. Стратегия tagging, выбранная в начале проекта, определяет, будет ли возможен откат на предыдущую версию через полгода.
Цели обучения
После раздела учащийся сможет:
- объяснить строение полного имени образа и роль каждой части;
- аутентифицироваться в registry и понимать, где и как хранятся credentials;
- публиковать и получать образы, проверяя целостность по digest;
- спроектировать стратегию tagging с неизменяемыми тегами и подвижными указателями;
- объяснить, почему развёртывание по тегу
latestделает откат ненадёжным; - запустить локальный registry и использовать его для разработки и тестирования;
- настроить TLS для registry и объяснить риски insecure registries;
- организовать аутентификацию из CI без раскрытия учётных данных;
- спланировать cleanup policy и объяснить, почему удаление тегов не освобождает место автоматически.
Предварительные знания
- Раздел 03. Работа с Images — tags, digests, manifest;
- Раздел 11. Production — воспроизводимость и rollback;
- Раздел 12. Security желательно — доверие к артефактам.
Материалы
-
Основы registry
Что такое registry, repository и namespace. Полное имя образа:registry/namespace/repository:tagи@digest. Docker Hub, GitHub Container Registry, GitLab Registry, private registry. Что происходит приpushиpull: манифест, слои, переиспользование существующих слоёв. Rate limits как версионно-зависимая тема. -
Аутентификация
docker loginи содержимое~/.docker/config.json. Credential helpers и хранение паролей вне файла. Токены доступа вместо паролей. Аутентификация в CI через переменные окружения и--password-stdin. Что нельзя делать: пароль в командной строке, коммитconfig.json. -
Локальный registry
Запуск registry в container, хранение данных в volume. Публикация и получение образа. Настройка TLS. Insecure registries: как настроить, почему это допустимо только в изолированной сети, какие риски создаёт. Использование локального registry для integration tests. -
Стратегия tagging
Неизменяемые теги против подвижных. Тег по commit SHA как основа воспроизводимости. Семантические версии, теги окружений,latest. Развёртывание по digest. Cleanup policy и почему удаление тега не освобождает место. Практическая схема тегов для типового проекта. -
Практические задания
Лабораторные задания раздела с проверкой результата.
Рекомендуемый порядок чтения
Последовательный: 01 → 02 → 03 → 04 → exercises.
Урок 04 наиболее ценен: он про проектное решение, а не про команды.
Практические задания
| № | Задание | Тип |
|---|---|---|
| 1 | Запустить локальный registry, опубликовать образ, получить его на «чистой» стороне | обяз. |
| 2 | Сравнить digest до публикации и после получения, объяснить результат | обяз. |
| 3 | Присвоить одному образу три тега и показать, что слои не дублируются | обяз. |
| 4 | Развернуть образ по digest и объяснить, чем это надёжнее развёртывания по тегу | обяз. |
| 5 | Настроить TLS для локального registry | доп. |
| 6 | Аутентифицироваться в registry через --password-stdin и проверить, что пароль не попал в историю shell | доп. |
| 7 | Спроектировать схему тегов для проекта с ветками main, release/* и feature-ветками | ★ |
| 8 | Образ в production отличается от собранного в CI при одинаковом теге. Объяснить, как это возможно | диаг. |
Полные формулировки — в exercises.md.
Критерии завершения раздела
Раздел пройден, когда учащийся может без подсказок:
- Разобрать полное имя образа на составляющие и объяснить, что подставляется по умолчанию.
- Объяснить, почему развёртывание по
latestне позволяет надёжно откатиться. - Опубликовать образ в локальный registry и подтвердить целостность по digest.
- Назвать три способа хранения credentials и выбрать подходящий для CI.
- Предложить схему тегов, обеспечивающую и удобство, и воспроизводимость.
Проверьте себя: Quiz 14.
Что дальше
Образ можно доставить. Следующий раздел отвечает на вопрос, который должен предшествовать доставке: как убедиться, что образ работает.
Навигация
← Предыдущий раздел: Observability и диагностика
Вернуться к главному оглавлению
Следующий раздел: Testing →