Иногда бывают ситуации, когда выход в интернет из локальной сети заблокирован, и есть доступ только к нескольким машинам в ДМЗ. При этом существует необходимость работать со всем нужным инструментарием и docker образами.
В этом случае на помощь приходит Nexus и настроенные на нём Proxy репозитории.
В таком случае после несложной настройки docker на самой машине обращения при docker pull отправляются не к заблокированному в локальной сети docker.io, а к вполне доступному nexus, который в свою очередь уже скачает все слои образа и отдаст вам.
Так же данный случай будет полезен в случае, когда часто пулится один и тот же docker образ, например на сборочных стендах. В таком случае можно уменьшить нагрузку на канал провайдера и снизить количество потребляемого траффика, т.к. nexus будет хранить копию слоев у себя и отдавать по запросу.
Для тех кто упустил — статья по разворачиванию Nexus доступна по этой ссылке: Установка Sonatype Nexus в docker
Перейдем к настройке.
Для начала создаем новый репозиторий docker (proxy)
Даллее по списку:
- Устанавливаем флаг HTTP и указываем желаемый порт
- Устанавливаем флаг «Allow anonymous docker pull»
- Устанавливаем флаг «Enable Docker V1 API»
- В поле Remote storage указываем: https://registry-1.docker.io
- Docker Index: устанавливаем в положение «Use Docker Hub»
- Устанавливаем флаг «Allow Nexus Repositpry Manager to download and cache foreign layers»
- Выбираем хранилище Blob Store
- Остальные параметры можно оставить «по умолчанию»
В результате должно получиться примерно вот так:
Нажимаем кнопку «Create repository»
Далее переходим к настройке самой машины:
Редактируем файл /etc/docker/daemon.json
, если такого нет — то создайте:
{
"insecure-registries": ["10.205.0.6:5005"],
"registry-mirrors": ["http://10.205.0.6:5005"]
}
Сохраняем и перезапускаем docker, что бы изменения применились:
systemctl restart docker
Проверяем работу:
docker pull rabbitmq
И проверяем что данные также появились в Nexus, посмотрев что происходит в прокси репозитории:
Всё работает. Говорим начальству что мы молодцы, просим повысить з\п.
Отправить ответ