Sababta ay konteynarrada Docker uga indhatiraan xalliyaha DNS ee VPN
Konteynarku wuxuu koobiyaa xalliyaha martigeliyaha marka uu bilaabmo, sidaas darteed VPN oo DNS dib u qoro mar dambe wuu ku dhex qarsoonaanayaa. Si cad u gudbi xalliyaha.
VPN-ga wuu shaqaynayaa, browser-ku wuxuu gaadhaa mareegaha gudaha, haddana konteynarku weli ma xallin karo isla magacyadaas. Rakibaadda xidhmada waxay ku dhinto khalad xallinta magaca sida EAI_AGAIN, ama codsi ma helo martigeliyaha kaydka xogta oo mishiinka martigeliyaha u xalliyo isagoo aan wax cabasho ah qabin. Konteynarku ma isticmaalo xalliyaha ay VPN-ga rakibtay. Docker wuxuu koobiyeeyay habaynta xalliyaha martigeliyaha markii konteynarka la abuuray, oo waxna dib uma uu koobiyeeyin ka dib.
Laba aragti oo xalliyaha ah oo ku yaal hal mishiin
Linux, Docker wuxuu konteynar kasta siiyaa nuqul ka mid ah habaynta xalliyaha martigeliyaha waqtiga abuurista, wuxuu shaandheeyaa cinwaannada loopback, wuxuuna ku shaqeeyaa server DNS gudaha ku dhisan 127.0.0.11 oo su'aalaha u gudbiya dibadda. Macmiilka VPN ee dib u qora /etc/resolv.conf ka dib markii konteynarku bilaabmay waxba kama beddelo gudaha. Dib u bilaabista konteynarka waxay caawisaa kaliya haddii xalliyaha martigeliyaha si kadis ah sax yahay waqtigaas.
Docker Desktop macOS ama Windows wuxuu ku darayaa lakab, sababtoo ah daemon-ku wuxuu ku nool yahay mishiin macmal ah. Laga yaabee in xalliyaha VPN-ga ee martigeliyaha aanu marnaba ka muuqan VM-kaas, sidaas darteed dib u bilaabistu waxna ma beddesho. Isbarbar dhig labada aragti ka hor inta aadan dooran xal: docker exec mycontainer cat /etc/resolv.conf dhinaca liiska xalliyayaasha martigeliyaha.
Konteynarka liis gareeya xalliyaha dadweynaha halka martigeliyuhu liis gareeyo mid gudaha ah wuxuu xallin doonaa magacyada dadweynaha wuuna ku guul darraystaa kuwa gudaha. Kala qaybintaas waa saxeexa dhibaatadan.
Xulashada A: u gudbi xalliyaha tunnel-ka konteynar kasta
Docker wuxuu aqbalaa dejinta DNS konteynar kasta, waana isbeddelka ugu yar ee shaqeeya. Marka hore akhri cinwaannada xalliyaha VPN-ga: scutil --dns macOS, resolvectl status ama soo-saarista xaaladda macmiilka laftiisa Linux. Kadib ku bilaabo konteynarka iyaga, tusaale ahaan docker run --dns 192.168.2.1 --dns 192.168.123.1 myimage. Compose gudaha isla dejinta waa liis ka hooseeya adeega, halkaas oo ay ku nooshahay kontoroolka nooca halkii ay ka ahaan lahayd taariikhda shell-ka qof.
Habaynta dns ee /etc/docker/daemon.json waxay khusaysaa konteynar kasta oo cusub, taas oo u ekaanaysa mid nadiif ah oo aanay ahayn. Waxay sidoo kale khusaysaa marka tunnel-ku xiran yahay, markaasna xalliyaha la gaari karo oo kaliya VPN-ga wuxuu jebiyaa soo jiidashada sawirada caadiga ah. Dejinta konteynar kasta way fududahay in la caddeeyo oo fududahay in la beddelo.
Xulashada B: u ogolow konteynarka inuu la wadaago shabakadda martigeliyaha
Shabakadaynta martigeliyaha ayaa si buuxda uga gudubta nuqulka, sababtoo ah konteynarku wuxuu isticmaalaa xalliyaha martigeliyaha iyo tunnel-ka martigeliyaha. Waxay sidoo kale meesha ka saaraysaa go'doominta shabakadda ee ay u badan tahay inaad rabtay, oo isku mid kuma dhaqanto Docker Desktop hoostiisa. Linux, waa doorashada macquulka ah ee qalab hal-mar ah oo ay tahay inuu xalliyo magacyo gudaha ah.
Dhismayaasha, midkoodna doorashooyinka lama khusayn, sababtoo ah tallaabooyinka dhismuhu ma dhaxlaan calaamadaha waqtiga socodka. Ku dhis isticmaal shabakadda martigeliyaha halka aaladda ay ogolaato, ama ku hay rakibaadda ku tiirsanaanta marxalad aan u baahnayn tunnel-ka.
Waxa aanay midkoodna doorashooyinka hagaajin
Cinwaanka DNS waa wax aan faa'iido lahayn haddii konteynarku aanu u lahayn waddo. Xalliyaha VPN-ga wuxuu inta badan fadhiyaa gudaha booska cinwaannada tunnel-ka, sidaas darteed konteynarku wuxuu u baahan yahay waddo u socota hordhacaas. Buundada caadiga ah ee Docker waxay inta badan u jiheysaa dibadda iyada oo u maraysa martigeliyaha, taasina waa ku filan tahay marka martigeliyuhu leeyahay waddada tunnel-ka oo gudbintu furan tahay. Shabakadaha buundada gaarka ah ee leh barkadaha cinwaannada u gaar ah waxay ku dhacaan subnet-ka VPN-ga, markaasna su'aaluhu gabi ahaanba meel kale ayay tagaan.
Ka hubi subnet-ka shabakadda Docker marka la barbar dhigo subnet-ka VPN-ga ka hor inta aadan cilad-saarin xalliyaha laftiisa. Isku-duubnaantu waxay soo saartaa guul-darro u eg si sax ah server DNS jaban.
Ku xaqiiji gudaha konteynarka
Ku tijaabi getent hosts db.internal gudaha konteynarka halkii aad isticmaali lahayd browser ama deegaan socodka luqadda, sababtoo ah kuwaasi waxay qaataan siyaasadooda DNS iyo keydkooda gaarka ah. Haddii getent xalliyo magaca oo codsigu weli guul darraysto, xalliyuhu hadda waa sax oo dhibaatada hadhay waa heer codsi. Haddii aanu xallin, tallaabada DNS ma dhammaan.
Dib u abuur konteynarka ka dib markaad beddesho dejinta DNS-kiisa. Tafatirka /etc/resolv.conf gudaha konteynar socda wuu la tirmaa oo wuxuu qariyaa dhibaatada habaynta si sax ah inta qof u baahan yahay inuu dib u bilaabo.