Доступ да проксі хоста з 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 з лакальнай настольнай праграмы мае асабліва малыя шанцы запрацаваць без змен на аддаленым зборшчыку ці серверы.
Аддзяляйце праблемы спампоўвання вобразаў: дэман спампоўвае вобраз раней, чым праграма можа выкарыстаць паказанае асяроддзе.