Настройка работы Docker через прокси
- Recluse
- 25.08.2022
- 6 672
- 2
- 6
- 5
- 1
Работая с Docker в сети, где доступ в Интернет организован через прокси-сервер, можно столкнуться с тем, что по умолчанию Docker работать через прокси-сервер не будет. Для того, чтобы включить использование прокси-сервера в Docker, нужно проделать одно из ниже описанных действий.
Настройка переменных в /etc/sysconfig/docker
- Открываем любым текстовым редактором файл /etc/sysconfig/docker, и добавляем туда следующие строки:
export HTTP_PROXY="http://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]" export HTTPS_PROXY="http://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]"
К примеру, если у вас в сети используется прокси с адресом 192.168.2.200, который работает на порту 3128, и не требует авторизации, то выглядеть это будет следующим образом:
export HTTP_PROXY="http://192.168.2.200:3128" export HTTPS_PROXY="http://192.168.2.200:3128"
В случае, если требуется авторизация логином user и паролем p4ssw0rd, то следует их добавить перед адресом сервера:
export HTTP_PROXY="http://user:p4ssw0rd@192.168.2.200:3128" export HTTPS_PROXY="http://user:p4ssw0rd@192.168.2.200:3128"
- Внеся все необходимые изменения, следует перезагрузить сервис Docker:
service docker restart
- После этого, Docker должен быть настроек к работе с прокси-сервером.
Настройка переменных в /etc/systemd/system/docker.service.d/http-proxy.conf
- Создадим директорию по пути /etc/systemd/system/docker.service.d:
mkdir /etc/systemd/system/docker.service.d
- Создадим файл /etc/systemd/system/docker.service.d/http-proxy.conf и внесем туда следующие строки:
[Service] Environment="HTTP_PROXY="http://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]/" Environment="http://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]/" Environment="NO_PROXY=[АДРЕС 1],[АДРЕС 2]"
Соответственно, если мы хотим использовать сервер прокси с адресом 192.168.2.200, на порту 3128 и с авторизацией по логину user и паролем p4ssw0rd, то содержимое будет иметь следующий вид:
[Service] Environment="HTTP_PROXY=http://user:p4ssw0rd@192.168.2.200:3128/" Environment="HTTPS_PROXY=http://user:p4ssw0rd@192.168.2.200:3128/" Environment="NO_PROXY=main.corp.local,192.168.2.1"
Так же ниже указаны адреса main.corp.local и 192.168.2.1, для работы с которыми не требуется использовать прокси-сервер.
- После завершения редактирования файла конфигурации, перезагрузим сервис systemd:
systemctl daemon-reload
- Так же перезагрузим сервис Docker:
systemctl restart docker
- Теперь, Docker должен будет использовать прокси-сервер.
Возможные ошибки
Если при работе с Docker вы получаете ошибку примерно следующего содержания:
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshake.
То проверьте, что вы указали в переменной HTTP_PROXY и HTTPS_PROXY - возможно там указан адрес прокси с протоколом https, но при этом, ваш прокси умеет работать только по протоколу http. Так же, не лишним будет проверить указанный в конце порт - возможно, ваш прокси и умеет работать по протоколу https, но на другом порту.
Добавить комментарий