Развертывание локального Docker Registry

DockerBeginner
Практиковаться сейчас

Введение

Docker Registry представляет собой специализированное хранилище, предназначенное для управления и дистрибуции образов Docker. Несмотря на популярность публичных облачных решений вроде Docker Hub, создание собственного локального реестра открывает ряд преимуществ: от независимости от интернет-соединения до полного контроля над безопасностью и версионностью ваших контейнеров. В рамках данного испытания вы научитесь развертывать локальный реестр и интегрировать его в свой рабочий процесс.

Настройка Docker Registry

Первым этапом станет запуск локального реестра. Для этого мы воспользуемся официальным образом Docker Registry, который предоставляется разработчиками Docker.

Цель

Развернуть и запустить работоспособный экземпляр Docker Registry.

Пример ожидаемого результата

Основные шаги по настройке реестра:

  1. Загрузите (pull) образ registry.
Загрузка образа Docker registry
  1. Создайте директорию с именем dockerregistry по пути /home/labex. Это необходимо для обеспечения сохранности данных (персистентности) образов внутри контейнера.
Создание директории dockerregistry
  1. Запустите контейнер с именем my-registry на основе образа registry. Настройте проброс портов и примонтируйте созданную директорию dockerregistry как том (volume) для хранения данных.
Запуск контейнера Docker registry
  1. Используйте команду curl, чтобы убедиться, что реестр доступен и отвечает на запросы.
Проверка доступности Docker registry

После выполнения этого этапа на вашей локальной машине будет запущен активный экземпляр Docker Registry.

✨ Проверить решение и практиковаться

Отправка образа в Docker Registry

Теперь, когда наш реестр запущен, пришло время проверить его в деле! На этом этапе мы возьмем тестовый образ и загрузим его в наше локальное хранилище.

Цель

Загрузить Docker-образ в локальный реестр.

Пример ожидаемого результата

Последовательность действий для отправки образа:

  1. Загрузите образ hello-world из официального Docker Hub.
Загрузка образа hello-world
  1. Создайте новый тег для образа hello-world, указав адрес вашего локального реестра.
 Тегирование образа hello-world
  1. Отправьте (push) помеченный образ в локальный реестр.
Отправка образа в локальный реестр

По завершении этого шага ваш образ будет успешно сохранен в локальном Docker Registry.

✨ Проверить решение и практиковаться

Получение образа из Docker Registry

Реестр работает и содержит наш тестовый образ. Теперь мы продемонстрируем обратный процесс — как извлечь образ из локального хранилища для использования.

Цель

Успешно загрузить (pull) образ из вашего локального реестра.

Пример ожидаемого результата

Шаги для получения образа:

  1. Используйте команду docker rmi, чтобы удалить локальную копию образа hello-world, которую вы пометили для локального реестра. Это нужно, чтобы убедиться, что при последующей загрузке образ действительно скачивается из реестра, а не берется из кэша.
Удаление образа Docker hello-world
  1. Загрузите образ из вашего локального Docker Registry.
Локальная загрузка образа Docker
  1. Запустите контейнер на основе только что загруженного образа.
Запуск Docker-контейнера из образа

После выполнения этих действий вы подтвердите полную работоспособность цикла «хранение-извлечение» в вашем локальном реестре.

✨ Проверить решение и практиковаться

Резюме

В ходе этого испытания вы научились развертывать локальный Docker Registry, а также освоили процессы тегирования, отправки и получения образов. Наличие собственного реестра обеспечивает гибкость в управлении инфраструктурой и позволяет эффективно работать в закрытых сетевых контурах. Поздравляем с успешным завершением испытания!