Достъп до прокси на хоста от 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 от локално настолно приложение е особено малко вероятно да работи без промяна на отдалечен builder или сървър.
Отделяйте проблемите с изтегляне на образи: демонът изтегля образа, преди приложението да може да използва показаната среда.