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
Документтеги мисал даректи жана 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'ти жүктөйт.