Во обичен контејнер со 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 копирана од локална десктоп-апликација да работи неизменета на оддалечен градител или сервер.

Одвојте ги проблемите со преземање слики: демонот ја презема сликата пред апликацијата да може да ја користи прикажаната околина.

Поврзани статии