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 ప్రతి socketను ప్రాక్సీ ద్వారా వెళ్లే అభ్యర్థనగా మార్చదు.
ప్రాక్సీ 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 లేదా సర్వర్లో మార్పు లేకుండా పనిచేసే అవకాశం మరీ తక్కువ.
ఇమేజ్ డౌన్లోడ్ సమస్యలను విడిగా ఉంచండి: అప్లికేషన్ పైన చూపిన వాతావరణాన్ని వాడగలగక ముందే daemon ఇమేజ్ను డౌన్లోడ్ చేస్తుంది.