Docker Registry — это приложение, которое управляет хранением и доставкой образов контейнеров Docker. Реестры централизуют образы контейнеров и помогают разработчикам сократить время сборки. Например, вместо отдельной установки зависимостей и пакетов для использования Docker, разработчики могут загрузить из реестра сжатый образ, содержащий все необходимые компоненты.
Рекомендуем для ознакомления:
- Разворачиваем NGINX в Docker
- Настройка виртуальных хостов NGINX в CentOS / RHEL
- Настройка обратного прокси сервера NGINX с SSL-терминацией в CentOS 8 / RHEL 8
- Получаем валидные сертификаты SSL от Let's Encrypt для NGINX
Создадим директорию для хранения образов:
mkdir -p /data/registry
Загружаем образ реестра Docker из собственного реестра Docker:
docker pull registry
Запускаем образ реестра Docker:
docker run --rm -d --name registry -v /data/registry:/var/lib/registry -p 5000:5000 registry:latest
Перенаправляем трафик на NGINX:
location /v2/ {
if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" ) {
return 404;
}
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900;
}
Увеличиваем размер выгрузки файлов для NGINX:
http {
client_max_body_size 2000M;
...
}
Проверяем изменения nginx.conf на наличие ошибок и перечитываем конфиг:
nginx -t
nginx -s reload
Открываем в окне браузера следующий url:
https://newsite.com/v2
Вы увидите пустой объект JSON или:
{}
Чтобы загрузить свой образ в репозиторий, поставьте метку образу:
docker tag test-image newsite.com/test-image
Отправьте образ с меткой в реестр:
docker push newsite.com/test-image
Для просмотра списка репозиторий, введите следующий url:
https://newsite.com/v2/_catalog