Docker - Частные реестры

Введение в Docker реестры

Здравствуйте, будущие мастера Docker! Сегодня мы окунемся в fascинирующий мир Docker реестров. Не волнуйтесь, если вы новички; я проведу вас через это шаг за шагом, как я делал это для countless студентов за годы моего преподавания. Давайте начнем наше путешествие!

Docker - Registries

Docker реестр resembles a library for your Docker images. Это место, где вы можете хранить, управлять и распространять эти образы. Представьте это как полку, где вы храните все свои любимые книги (или в этом случае, Docker образы) аккуратно организованными и легко доступными.

Типы Docker реестров

Существует два основных типа Docker реестров:

  1. Публичные реестры (например, Docker Hub)
  2. Частные реестры

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

Настройка частного реестра

Давайте натянем рукава и настроим наш собственный частный реестр. Это проще, чем вы можете подумать!

Шаг 1: Извлечь образ реестра

Сначала нам нужно извлечь официальный образ реестра с Docker Hub. Откройте ваш терминал и введите:

docker pull registry:2

Эта команда похожа на то, что вы просите библиотекаря принести вам "реестр" книгу из "Docker Hub" библиотеки.

Шаг 2: Запустить контейнер реестра

Теперь запустим наш реестр:

docker run -d -p 5000:5000 --name my-registry registry:2

Давайте разберем это:

  • -d: Запускать контейнер в отложенном режиме (в фоновом режиме)
  • -p 5000:5000: Прокси порта 5000 контейнера на порт 5000 вашего хоста
  • --name my-registry: Даем нашему контейнеру friendly имя
  • registry:2: Образ, который мы используем для создания этого контейнера

Поздравляю! Теперь у вас есть частный реестр, работающий на вашем компьютере.

Pushing Images to Your Private Registry

Теперь, когда у нас есть реестр, давайте положим в него несколько образов!

Шаг 1: Пометить образ

Сначала нам нужно пометить образ, чтобы связать его с нашим реестром:

docker tag my-image:latest localhost:5000/my-image:latest

Это похоже на то, что вы ставите special наклейку на вашу книгу, чтобы показать, что она belongs к вашей частной библиотеке.

Шаг 2: Push the Image

Теперь давайте отправим этот образ в наш реестр:

docker push localhost:5000/my-image:latest

Вы только что добавили свою первую книгу в вашу частную библиотеку!

Извлечение образов из вашего частного реестра

Чтобы использовать образ из вашего частного реестра, вы можете извлечь его так:

docker pull localhost:5000/my-image:latest

Это так просто! Вы теперь извлекаете книги из вашей частной библиотеки.

Защита вашего частного реестра

Теперь мы не хотим, чтобы кто-то другой имел доступ к нашей частной библиотеке, не так ли? Давайте добавим немного безопасности.

Использование базовой аутентификации

Вот как настроить базовую аутентификацию:

  1. Создайте файл пароля:
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd
  1. Запустите реестр с аутентификацией:
docker run -d \
-p 5000:5000 \
--name secure-registry \
-v "$(pwd)"/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry:2

Теперь ваш реестр защищен с помощью имени пользователя и пароля!

Полезные команды Docker Registry

Вот удобная таблица команд, которые могут быть вам полезны:

Команда Описание
docker pull registry:2 Извлечь образ реестра
docker run -d -p 5000:5000 --name my-registry registry:2 Запустить контейнер реестра
docker tag image:tag localhost:5000/image:tag Пометить образ для локального реестра
docker push localhost:5000/image:tag Отправить образ в локальный реестр
docker pull localhost:5000/image:tag Извлечь образ из локального реестра
docker search localhost:5000/ Искать в локальном реестре

Заключение

И вот оно, folks! Вы только что настроили свой собственный частный Docker реестр. Помните, что практика делает мастера. Не бойтесь экспериментировать и пробовать разные вещи. Кто знает? Вы можете открыть что-то новое и захватывающее!

За годы моего преподавания я видел, как студенты переходят от complete новичков до Docker магов. С терпением и настойчивостью, вы также доберетесь до этого. Продолжайте pushing (намек включен) и счастливого Dockering!

Credits: Image by storyset