Docker не может загружать образы через прокси-сервер

Docker не может загружать образы через прокси-сервер

Я использую Docker версии 20.10.14 с CentOS Linux 7. Я только что установил Docker и настроил параметры прокси-сервера в /usr/lib/systemd/system/docker.service. Мои параметры прокси-сервера:

Environment="HTTP_PROXY=http://10.330.100.100:3128/"
Environment="HTTPS_PROXY=https://10.330.100.100:3128/"
Environment=no_proxy=localhost,127.0.0.1

я получаю ошибку типа

Error response from daemon: Get "https://registry-1.docker.io/v2/": proxyconnect tcp: tls: first record does not look like a TLS handshake

и при изменении HTTPS_PROXY с https --> http я получаю

Error response from daemon: Get "https://registry-1.docker.io/v2/": Bad Request

и при попытке выполнить curl "https://registry-1.docker.io/v2/" я получаю

curl: (56) Received HTTP code 400 from proxy after CONNECT

решение1

Environment="HTTP_PROXY=http://10.330.100.100:3128/"
Environment="HTTPS_PROXY=https://10.330.100.100:3128/"
                             ^                  ^^^^

Здесь вы можете настроить свой прокси-сервер для доступа по обычному HTTP и HTTPS.на том же порту. Это крайне маловероятно.

Либо ваш прокси-сервер настроен с собственным сертификатом TLS и будет прослушивать разные порты для http и https.

Или, что обычно и происходит, прокси-сервер поддерживает только простые http-соединения, а запросы к ресурсам HTTPS по-прежнему должны использовать простой HTTP для подключения к прокси-серверу. (После подключения к прокси-серверу клиент будет использовать метод CONNECT для установки TLS-соединения через прокси-сервер с веб-сервером, что создает сквозной зашифрованный канал.)

Другими словами: вам, вероятно, нужно изменить переменную HTTPS_PROXY на:

Environment="HTTPS_PROXY=http://10.330.100.100:3128/"

Когда вам необходимо использовать прокси, это часто означает, что также контролируется трафик TLS. Вам может потребоваться установить и включить сертификат CA вашей организации.


Если вам необходимо использовать прокси-сервер, это означает, что и другие сотрудники вашей организации должны сделать то же самое.

Это означает, что вы (или, скорее, ваш прокси-сервер) очень быстро столкнетесь с ограничением скорости Docker. Смотрите:https://docs.docker.com/docker-hub/download-rate-limit/

Связанный контент