Настройка подключения docker через proxy

Docker hub Proxy

Тревожной новостью этой недели стала блокировка пользователей из России ресурсом Dcoker Hub. Блокировка осуществляется по Geo IP.

Справиться с этой проблемой нам поможет сам же docker, который имеет соответствующие инструменты.

Что мы видим?

root@nvServer:~# docker pull alpine:latest
Error response from daemon: pull access denied for alpine, repository does not exist or may require ‘docker login’: denied: < h1>403 Forbidden 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 a ddresses that are located in Cuba, Iran, North Korea, Republic of Crimea, Sudan, and Syria. If you are not in one of these cities, countr ies, or regions and are blocked, please reach out to https://hub.docker.com/support/contact/

Похожие ответы сейчас получают пользователи из России.

root@nvServer:~# curl -I https://hub.docker.com
HTTP/1.0 403 Forbidden
cache-control: no-cache
content-type: text/html

Одним из способов решить эту проблему является использование proxy, который подключается через Tor.

Вам потребуется рабочий HTTP или SOCKS proxy. Информация по настройке взята из инструкции Configure the daemon with systemd с официального сайта.

Кратко

sudo -i

# Создать каталог
mkdir -p /etc/systemd/system/docker.service.d

# Создать файл /etc/systemd/system/docker.service.d/http-proxy.conf
mcedit /etc/systemd/system/docker.service.d/http-proxy.conf

# В файл добавить текст
[Service]
Environment="HTTP_PROXY=http://proxy.myserver.ru:8118"
Environment="HTTPS_PROXY=http://proxy.myserver.ru:8118"

# Обновить systemd и перезапустить docker
sudo systemctl daemon-reload
sudo systemctl restart docker

# Проверить настройки
systemctl show --property=Environment docker

Подробно

1. Создать файл настроек docker.service

sudo -i
# Создать каталог
mkdir -p /etc/systemd/system/docker.service.d
# Создать файл /etc/systemd/system/docker.service.d/http-proxy.conf
mcedit /etc/systemd/system/docker.service.d/http-proxy.conf

2. В файл http-proxy.conf вставить текст

[Service]
Environment="HTTP_PROXY=http://proxy.myserver.ru:8118"
Environment="HTTPS_PROXY=http://proxy.myserver.ru:8118"

Вместо proxy.myserver.ru укажите доступный proxy сервер.

3. Обновляем systemd и перезапускаем docker

sudo systemctl daemon-reload
sudo systemctl restart docker

4. Проверяем, что настройки применились:

root@nvServer:~# systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://proxy.myserver.ru:8118 HTTPS_PROXY=http://proxy.myserver.ru:8118

5. Проверяем, что docker pull работает

root@nvServer:~# docker pull alpine:latest
latest: Pulling from library/alpine
d25f557d7f31: Pull complete
Digest: sha256:77726ef6b57ddf65bb551896826ec38bc3e53f75cdde31354fbffb4f25238ebd
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии