Привет. Эта новость оказалась довольно громкой, вполне понятно почему. Но на всякую сраку мы быстренько находим болт с резьбой. Решение проблемы оказалось банальным через штатный конфиг докера, но кому-то искать его пришлось в суматохе, а кому-то нет.
По состоянию на 03.06.2024 хаб разблокирован на стороне docker.com. Надолго-ли — непонятно, поэтому рекомендую не расслабляться, а всё-таки подготовить машину и почитать ссылки в конце.
Я решил собрать здесь сводную инфу по решению вот такой ошибки:
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, regular setup | /etc/docker/daemon.json |
Linux, rootless mode | ~/.config/docker/daemon.json |
Windows | C:\ProgramData\docker\config\daemon.json |
Windows с Docker Desktop | 1. C:\Users\<Пользователь>\.docker\daemon.json 2. Через меню Preferences->Docker engine |
пишем внутрь:
{
"registry-mirrors": [
"https://dockerhub.timeweb.cloud",
"https://dh-mirror.gitverse.ru",
"https://mirror.gcr.io",
"https://daocloud.io",
"https://c.163.com/",
"https://registry.docker-cn.com",
"https://huecker.io"
]
}
и перечитываем демону конфиги:
$ sudo systemctl reload docker
Теперь при попытке загрузки образа, докер будет сначала пытаться использовать прокси. Уже загруженные на машину образы будут работать нормально и на их базе по-прежнему можно строить свои.
Это решение на 100% рабочее на момент публикации, но никто не гарантирует, что эти зеркала:
- будут поддерживаться хоть сколько-нибудь долго;
- адекватны и не подменяют официальные образы зловредными (помни про protest-ware);
- сами каким-либо образом не будут заблокированы на стороне docker.com.
В любом случае, не рекомендую удалять с тачки те образы, которые уже были когда-то скачаны, хотя бы какое-то время.
И помни, что окончательная блокировка повторится также внезапно, как предыдущая.
Для доступа к веб-версии можно по классике использовать какой-нибудь VPN.
Решение для Podman
Берём этот файл:
операционная система | путь к файлу конфигурации |
---|---|
Linux | /etc/containers/registries.conf |
Mac OS и Windows | 1. выполнить в терминале: podman machine ssh --username root [optional-machine-name] ;2. открыть файл: /etc/containers/registries.conf |
пишем внутрь:
[[registry]]
location="https://dockerhub.timeweb.cloud"
[[registry.mirror]]
location="https://dh-mirror.gitverse.ru"
[[registry.mirror]]
location="https://mirror.gcr.io"
[[registry.mirror]]
location="https://daocloud.io"
[[registry.mirror]]
location="https://c.163.com/"
[[registry.mirror]]
location="https://registry.docker-cn.com"
[[registry.mirror]]
location="https://huecker.io"
Я буду стараться обновлять этот пост по мере появления других зеркал и полезной информации. Поэтому добавляй в закладки и отправляй коллегам, которые до сих пор в тумане.
UPD 31.05.2024
Я включил установку этих зеркал в свой скрипт установки docker.
UPD 03.06.2024
Добавлено зеркало GitVerse + настройка podman. Добавлены дополнительные ссылки в конце для изучения.
Источники:
- Доступ к Docker Hub из России. Как подключиться к Docker Hub после блокировки
- Для пользователей GitVerse стало доступно российское «зеркало» Docker Hub
- https://dockerhub.timeweb.cloud
- https://huecker.io
Доп. инфо:
- Docker умер. Да здравствует Docker
- Блокировка Docker Hub для России. Без паники разбираемся как работать дальше
- Docker Hub заблокировали возможность обновлять проекты. Как работать дальше (включает инфу о развёртывании своего зеркала)
- Docker и точка. Отжимаем образа у Chainguard
- Доступ к Docker Hub из России. Как подключиться к Docker Hub после блокировки
- Как уменьшить количество обращений к DockerHub из инфраструктуры CI/CD при помощи кэширования образов Docker?
- Прозрачно кешируем несколько Container Registry в CRI-O и Podman
- How to manage Linux container registries