Ní féidir le Dev Container teacht ar óstach atá le fáil trí VPN amháin: cá féachaint
Tá comhthéacsanna réitithe, seachfhreastalaí agus bealaigh éagsúla ag an mbrabhsálaí agus ag an gcoimeádán. Faigh amach cé acu a úsáideann an próiseas a theipeann sula n-athraíonn tú aon socrú VPN.
Osclaíonn an API príobháideach i mbrabhsálaí do dheisce agus teipeann sé sa choimeádán forbartha. Ní contrárthacht é sin, agus is annamh gurb é an VPN féin an chúis. Rinne próisis éagsúla an t-iarratas ón mbrabhsálaí agus an t-iarratas a theipeann, le réiteoirí, seachfhreastálaithe agus bealaigh éagsúla, agus go minic ó spásanna ainmneacha líonra atá go hiomlán éagsúil. Is féidir le «ar mo ríomhaire glúine» an t-óstach Windows, dáileadh WSL, meaisín fíorúil Docker Desktop agus coimeádán laistigh den VM sin a chur in iúl: ceithre chomhthéacs ar féidir le gach ceann acu freagra éagsúil a thabhairt ar an ainm óstaigh chéanna. Faigh amach cé acu a úsáideann an próiseas a theipeann sula dteagmhaíonn tú le haon socrú amháin.
Aimsigh an próiseas sula n-athraíonn tú socrú
Tosaigh leis an inneall coimeádán, ní leis an gcliant VPN. Fiafraigh cén comhthéacs a labhraíonn an líne ordaithe leis agus cén córas oibriúcháin a ritheann an t-inneall sin air, mar go dtéann coimeádán Linux a bhainistíonn VM deisce ar chonair éagsúil ón gceann a bhainistíonn daemon áitiúil:
docker context ls
docker info --format '{{.OperatingSystem}} / {{.Name}}'
docker run --rm alpine ip route
Ar Windows, insíonn wsl -l -v duit an bhfuil an dáileadh ag rith faoi WSL 2, rud a chuireann taobh thiar dá lasc fhíorúil féin é. Cinneann an mhionsonra sin an roinneann an coimeádán tábla ródaithe an óstaigh nó an suíonn sé taobh thiar de NAT a dteastaíonn port a sheoltar ar aghaidh nó ainm óstaigh uaidh chun an t-óstach a bhaint amach.
Coinnigh iarratas amháin seasmhach agus déan comparáid
Roghnaigh críochphointe neamhurchóideach amháin ar an óstach príobháideach agus úsáid é do gach comparáid: ón mbrabhsálaí, ó theirminéal an óstaigh, ón dáileadh WSL agus ón taobh istigh den choimeádán. Scríobh síos ceithre rud do gach iarracht: an seoladh a réitíodh, ar úsáideadh seachfhreastalaí, aicme na teipe agus an t-am a chuaigh thart. Is ceithre fhadhb éagsúla iad cuardach ainmne, bunú naisc, bailíochtú TLS agus stádas HTTP, agus má mheascann tú iad in «ní oibríonn sé» caitheann tú maidin amú.
Rith an chomparáid laistigh den choimeádán a theipeann, le teorainn ama ionas nach gcoinníonn balla dóiteáin ciúin an teirminéal ar feadh nóiméad. Athchruthaíonn coimeádán úr comhthéacs líonra an innill, ach ní athchruthaíonn sé spás ainmneacha, athróga seachfhreastalaí ná réiteoir an choimeádáin fheidhmchláir, mar sin is é docker exec isteach sa choimeádán fíor an tástáil údarásach, agus níl sa choimeádán taobh ach bealach chun aonrú a dhéanamh ar cibé an bhfuil an difríocht san inneall nó sa choimeádán:
docker exec -it app /bin/sh -c "getent hosts api.internal; curl -v --max-time 8 https://api.internal/ 2>&1 | tail -20"
docker run --rm --network container:app curlimages/curl:latest -sv --max-time 8 https://api.internal/ 2>&1 | tail -20
Tá busybox san íomhá bhunúsach alpine agus níl curl ann, agus is é sin go beacht an cineál mionsonra a dhéanann blocl diagnóiseach cóipeáilte a theip. Roghnaigh íomhá a bhfuil an cliant inti, nó cuir leis an rith chéanna é. Ní aontaíonn comparáid le suíomhanna poiblí gan bhaint aon rud. Má oibríonn https://example.com ón gcoimeádán, tá foghlamtha agat go bhfuil rochtain idirlín ag an gcoimeádán, agus faic faoi cé acu a shroicheann sé seoladh príobháideach tríd an tollán. Mar an gcéanna, ní chruthaíonn oscailt teirminéil nua ach go n-oibríonn an teirminéal nua, ní go roinneann sé timpeallacht riththe le feidhmchlár a theip.
Is féidir le Docker Desktop oibriú le VPN
Déanann doiciméadú Docker féin ar VPN agus ar nascacht óstaigh cur síos air seo mar shocrú tacaithe, agus is é an achoimre ionraic go n-oibríonn sé seachas a bheith briste go huathoibríoch. Ná gabh leis go seachnaíonn VM an deisce tollán an óstaigh de dhearaadh; i go leor socruithe leanann an trácht tollán an óstaigh i gceart, agus is é sin an fáth a dtáirgeann finscéal «Docker ignores the VPN» comhairle mhuiníneach agus mhícheart.
Is iad na rudaí atá tábhachtach fós ná an backend atá in úsáid, polasaí tolláin scoilte an chliaint agus cumraíocht an réiteora a fuair an VM. Cruthaíonn cliant VPN a shuiteálann bealaigh ach nach suiteálann DNS, nó a bhrúnn freastalaí DNS nach féidir leis an VM a shroicheadh, teip ar chuardach ainmne laistigh den choimeádán agus an t-óstach ag obair mar go bhfuil réiteoir breise nó freagra i dtaisce aige. Is fadhb réiteora é sin i gcóiriú coimeádán. Maireann sé gach athnascadh VPN a thriailfidh tú, mar tá an tollán cheana féin ag iompar an tráchta a d'iarr tú air a iompar.
Is teipeanna éagsúla iad forluí seoltaí agus MTU
Tá dhá theip tuillte ag a ndiagnóis féin mar go meastar go minic gur polasaí rochtana iad. Is é an chéad cheann forluí seoltaí: má bhrúnn an VPN raon a thagann salach ar fhoshoilseán droichid réamhshocraithe líonra coimeádáin, díríonn bealach an choimeádáin don raon sin chuig an droichead áitiúil agus ní shroicheann sé an tollán riamh. Scrúdaigh na fíorfhoshoilseáin seachas buille faoi thuairim a thabhairt:
docker network inspect bridge --format '{{range .IPAM.Config}}{{.Subnet}}{{end}}'
ip route get 10.20.30.40
Is é an dara ceann fadhb MTU. Má bhunaítear an nasc agus má chríochnaíonn TLS ach go stopann freagraí níos mó, tá fadhb mhéide paicéid agat, ní fadhb údaraithe, agus ní dheiseoidh athsholáthar taifead DNS riamh é. Tástáil le hiarratas beag agus ceann mór sula n-athraíonn tú aon rud, agus scríobh síos an dá thoradh.
Is é réiteach forluí foshoilseán coimeádáin éagsúil nó bealach teoranta, arna roghnú ag an té a bhfuil an plean seoltaí aige. Is é réiteach ar stopadh MTU MTU an tolláin nó an chomhéadain a chlúdach nó a laghdú go luach a mhaireann an chonair, curtha i bhfeidhm ag an gciseal a rialaíonn tú.
Tá cumraíocht seachfhreastalaí de réir próisis, ní de réir meaisín
Laistigh de choimeádán, ainmníonn localhost comhthéacs líonra an choimeádáin sin féin, mar sin ní féidir teacht ar sheachfhreastalaí a ritheann ar an óstach ansin faoin ainm sin. Soláthraíonn Docker Desktop host.docker.internal le haghaidh rochtain óstaigh, agus ar Linux cuireann tú go sainráite é le --add-host=host.docker.internal:host-gateway. Ar aon chaoi, tugann an t-ainm sin bealach duit chuig an óstach; ní chruthaíonn sé seirbhís seachfhreastalaí agus ní thugann sé údarú duit ceann a úsáid.
Úsáid an seoladh agus an port seachfhreastalaí a sholáthraítear don timpeallacht iarbhír, agus seiceáil cé atá á léamh. Ní dhéanann athróga a onnmhairítear i sliogán idirghníomhach cumraíocht go huathoibríoch ar gach síneadh eagarthóra, freastalaí teanga, uirlis tógála agus daemon cúlra. Is é an próiseas a rinne an t-iarratas a theip is tábhachtaí, mar sin scrúdaigh a thimpeallacht seachas timpeallacht do theirminéil.
Ar deireadh, lig don cheartú é féin a mhíniú. Ainmníonn réiteach úsáideach an teorainn a bhí mícheart, an socrú a d'athraigh í agus an tsraith próiseas a mbíonn tionchar acu uirthi anois. Féadfaidh atosú an VPN, an eagarthóra agus an innill in ord an tsiomptóm a athrú, ach ní fhágtar aon rud a d'fhéadfadh an chéad duine eile a úsáid.