У вас может возникнуть необходимость иметь свои собственные приватные репозитории. Возможно, вы не хотите размещать репозитории в Docker Hub. Для этого существует контейнер репозитория от Docker. Давайте посмотрим, как мы можем использовать его.
Шаг 1. Используйте команду Docker run, чтобы загрузить приватный реестр. Сделать это можно при помощи следующей команды:
sudo docker run –d –p 5000:5000 –-name registry registry:2
Проясним некоторые моменты вызова команды выше:
- Registry — это контейнер, управляемый Docker, который может быть использован для размещения на нём приватных репозиториев.
- Номер порта, предоставляемый контейнером, равен 5000. Следовательно, с помощью команды -p мы сопоставляем этот номер порта с номером порта 5000 на нашем локальном хосте.
- Далее мы просто помечаем контейнер реестра как “2”, чтобы дифференцировать его на хосте Docker.
- Параметр -d используется для запуска контейнера в обособленном режиме. За счёт этого контейнер сможет работать в фоновом режиме.
Шаг 2. Давайте вызовем dockerps, чтобы увидеть, что контейнер реестра действительно работает.
Теперь мы убедились в том, что контейнер реестра действительно работает.
Шаг 3. Давайте привяжем один из наших существующих образов, чтобы мы могли отправить его в наш локальный репозиторий. В нашем примере, поскольку у нас есть образ centos, доступный локально, мы собираемся привязать его к нашему приватному репозиторию и добавить имя тега centos.
sudo docker tag 67591570dd29 localhost:5000/centos
Обратим внимание на следующие пункты:
- 67591570dd29 относится к идентификатору образа centos.
- localhost:5000 — это местоположение нашего приватного репозитория.
- Мы привязываем имя репозитория centos к нашему приватному репозиторию.
Шаг 4. Теперь воспользуемся командой Docker push, чтобы переместить репозиторий в наш приватный репозиторий.
sudo docker push localhost:5000/centos
Здесь мы перемещаем образ centos в приватный репозиторий, размещённый на localhost:5000.
Шаг 5. Теперь мы удалим локальные образы centos при помощи команд docker rmi. После чего мы сможем загрузить необходимый образ centos из нашего репозитория.
sudo docker rmi centos:latest
sudo docker rmi 67591570dd29
Шаг 6. Теперь, когда у нас нет локальных образов centos, мы можем использовать команду Docker pull для извлечения образа centos из нашего приватного репозитория.
sudo docker pull localhost:5000/centos
Здесь мы переносим образ centos из приватного репозитория, размещенного на localhost:5000.
Теперь если вы посмотрите образы в вашей системе, вы также увидите centos.
Источник: Docker — Private Registries