Docker Hub заблокирован, как исправить ошибку 403

Привет. Эта новость оказалась довольно громкой, вполне понятно почему. Но на всякую сраку мы быстренько находим болт с резьбой. Решение проблемы оказалось банальным через штатный конфиг докера, но кому-то искать его пришлось в суматохе, а кому-то нет.

По состоянию на 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
WindowsC:\ProgramData\docker\config\daemon.json
Windows с Docker Desktop1. 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 и Windows1. выполнить в терминале: 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. Добавлены дополнительные ссылки в конце для изучения.


Источники:

Доп. инфо:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *