Доступ к прокси хоста из Docker-контейнера в сети bridge
Выберите доступный из контейнера адрес прокси и отличайте публичную точку от прокси на хосте Docker.
В обычном контейнере с сетью bridge 127.0.0.1 — его собственный loopback-адрес. Прокси на localhost ноутбука не начинает автоматически слушать внутри каждого контейнера.
Это объясняет частый разный результат: один URL прокси работает в терминале хоста, но даёт отказ соединения в контейнере. В каждом месте адрес указывает на другую сетевую точку.
Публичный прокси можно использовать напрямую
Если точка из сервиса или списка HTTP-прокси действительно является доступным публичным IP, передайте этот адрес приложению, не заменяя его на localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Замените документационный адрес и образ. Программа в образе должна поддерживать эти переменные среды; Docker не превращает каждый сокет в проксированный запрос только из-за их наличия.
Если прокси работает на хосте Docker
Docker Desktop предоставляет host.docker.internal для доступа к внутреннему адресу хоста. В поддерживаемой нативной конфигурации Engine запись хоста может предоставить это общепринятое имя:
docker run --rm \
--add-host host.docker.internal=host-gateway \
-e HTTP_PROXY=http://host.docker.internal:8080 \
-e HTTPS_PROXY=http://host.docker.internal:8080 \
your-image
Это меняет разрешение имён, а не перенаправляет порт. На нативном Linux служба, привязанная только к loopback хоста, может остаться недоступной через его bridge-адрес. Слушающий узел, межсетевой экран и маршрут контейнера должны разрешать соединение. Меняя прослушивание, ограничьте его нужными клиентами, вместо того чтобы создавать открытый прокси без аутентификации.
Проверяйте из того же места, что и приложение
Результат curl на хосте проверяет только маршрут хоста. Выполните запрос из контейнера и проверьте достижение нужной точки.
«Хост» также означает машину, где работает Docker Engine. При удалённом Engine это не обязательно ноутбук. Поэтому особенно маловероятно, что loopback-IP из локального настольного приложения заработает без изменений на удалённом сборщике или сервере.
Отделяйте проблемы загрузки образов: демон скачивает образ до того, как приложение сможет использовать показанную выше среду.