Доступ к Docker Hub

Проблема

Ресурс Docker Hub закрыл доступ для пользователей из России и еще ряда стран. Блокировка осуществляется по Geo IP.

~> docker pull golang:alpine
Error response from daemon: pull access denied for alpine, 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>
~> docker pull golang:alpine
Error response from daemon: pull access denied for alpine, 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>

Решение

Сообщество уже накидало множество вариантов обхода блокировки.

Рассмотрим, на мой взгляд, самое простое и наименее замороченное решение - proxy-server.

Нам потребуется рабочий HTTP или SOCKS прокси-сервер. Настройка данного сервера выходит за рамки этой статьи, но пример как можно его сделать изложен тут. Стоит уточнить, что в целях безопасности следует использовать только доверенный (свой) прокси-сервер.

На машине, где необходимо открыть доступ до Docker, делаем следующее:

  • открываем файл настроек
    terminal
    nano /lib/systemd/system/docker.service
    nano /lib/systemd/system/docker.service
  • добавляем следующие строки в раздел [Service]
    [Service]
    Environment="HTTP_PROXY=http://proxy-example.com:3128"
    Environment="HTTPS_PROXY=http://proxy-example.com:3128"
    [Service]
    Environment="HTTP_PROXY=http://proxy-example.com:3128"
    Environment="HTTPS_PROXY=http://proxy-example.com:3128"
  • перезагружаем службу
    terminal
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    sudo systemctl daemon-reload
    sudo systemctl restart docker

Теперь с Docker можно работать как и раньше.

Ссылки и дополнительная информация



Коментарии

Остались вопросы, появились идеи для обсуждения или просто хотите оставить отзыв? Буду рад любой обратной связи!

Вместо авторизации в приложении giscus , вы также можете оставлять комментарии непосредственно на GitHub, с которым связанна данная ветка комментариев.

Похожие записи

Комментарии в блоге с Giscus

Система комментариев на основе GitHub Discussions.

Оптимизация работы Go-приложений в Docker

Нюансы работы сборщика мусора в Golang и пути оптимизации выполнения Go-приложений в Docker