Все известно, что Докерхаб закрыл доступ для пользователей из санкционных стран, включая РФ и РБ. Помимо стандартных всем известных способов обхода блокировок есть и специфические для docker hub. В тех случаях, когда вы не можете воспользоваться VPN или proxy, можно прописать проксирующие серверы (зеркала) для registry прямо в настройки docker клиента.
Если вы получаете ошибку 403, которая звучит так:
Error response from daemon: pull access denied for nginx, repository does not exist or may require ‘docker login’: denied: <html><body><h1>403 Forbidden</h1> Since Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Iran, North Korea, Republic of Crimea, Sudan, and Syria. If you are not in one of these cities, countries, or regions and are blocked, please reach out to https://hub.docker.com/support/contact/ </body></html>
то вот решения.
ОС | путь к файлу конфигурации |
---|---|
Linux, обычная установка (root) | /etc/docker/daemon.json |
Linux, режим без root | ~/.config/docker/daemon.json |
Windows | C:\ProgramData\docker\config\daemon.json |
Docker Desktop (Windows) | C:\Users\<user>\.docker\daemon.json |
Список доступных прокси достаточно большой:
URL | описание |
---|---|
https://cr.yandex/mirror | Яндекс, РФ |
https://huecker.io | РФ |
https://public.ecr.aws | Amazon |
https://quay.io | RedHat |
https://registry.access.redhat.com | RedHat |
https://registry.redhat.io | RedHat |
https://mirror.gcr.io | |
https://daocloud.io | Китай |
https://c.163.com | Китай |
https://registry.docker-cn.com | Китай |
https://dockerhub.timeweb.cloud | Таймвеб, РФ |
Формат конфига таков:
{
"registry-mirrors": ["https://<my-docker-mirror-host>"]
}
{
"registry-mirrors" : [ "https://cr.yandex/mirror", "https://huecker.io", "https://mirror.gcr.io" ]
}
$ systemctl reload docker
Также при операциях с реджистри можно явно указывать прокси-сервер
$ docker pull huecker.io/library/alpine:latest
Самый простой способ запустить реестр как кэш с возможностью извлечения — запустить образ реджистри. Несколько кэшей реджистри могут быть развернуты на одном сервере. Единый кэш реестра гарантирует, что одновременные запросы не извлекают повторяющиеся данные, но это свойство не работает для кластера кэша реестра.
Докер образ реестра необходимо запустить на машине, которая имеет доступ к публичному реестру докерхаба — https://registry-1.docker.io
Можно использовать как официальный образ, так и кастомный от Хуекера.
/etc/docker/registry/config.yml
Этот файл содержит много настроек, но те, что нас интересуют, следующие:
proxy:
remoteurl: https://registry-1.docker.io
username: [username]
password: [password]
Логин и пароль не являются обязательными.
Есть 2 способа перезаписать дефолтную конфигурацию реестра — через подмену config.yml
и через переменные окружения.
Можно указать переменную REGISTRY_PROXY_REMOTEURL
при запуске контейнера с указав команду
docker run -d -e REGISTRY_PROXY_REMOTEURL=https://cr.yandex/mirror --restart=always --name registry registry:2
или же подменить файл целиком, примонтировав его с диска.
Запуск с доступом по 5000 порту и с монтированием выглядит так:
$ docker run -d -p 5000:5000 --restart=always --name registry \
-v `pwd`/config.yml:/etc/docker/registry/config.yml registry:2
Полный список параметров файла доступен в официальной документации.
Процессы и программы Программа в Unix — это последовательность исполняемых инструкций на диске. Вы можете…
Существует большое разнообразие форматов, в которых создаются сертификаты и приватные ключи для них. Часто они…
Зачастую бывает необходимо проверить, а какой SSL сертификат отдает тот или иной хост на определенном…
Choco - лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси,…
В России становится все больше малоизвестных китайских товаров, поэтому сегодня у нас на обзоре китайский…
Команда mv не перемещает с перезаписью поверх папки, если таковые уже существуют, поэтому часто вместо…