Кәдімгі 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

Құжаттамадағы мысал мекенжайы мен image-ті ауыстырыңыз. 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-дің қашықтағы құрастыру машинасында не серверде өзгеріссіз жұмыс істеу ықтималдығы әсіресе төмен.

Image жүктеу мәселелерін бөлек қараңыз: қолданба жоғарыдағы ортаны пайдалана алмай тұрып, демон image-ті жүктейді.

Қатысты мақалалар