В обычном контейнере с сетью 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 из локального настольного приложения заработает без изменений на удалённом сборщике или сервере.

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

Похожие статьи