Kí ni idi tí àwọn kóńténíà Docker fi ń pa DNS résọ́lúfà VPN tì
Kóńténíà ń ṣàdàkọ résọ́lúfà ẹ̀rọ ìgbàlejò nígbà tí ó bá ń bẹ̀rẹ̀, nítorí náà VPN tí ó bá tún DNS kọ lẹ́yìn náà yóò wà ní àìrí nínú rẹ̀. Fi résọ́lúfà náà ránṣẹ́ ní kedere.
VPN ti ń ṣiṣẹ́, aṣàwákiri ti ń dé àwọn ojú-ìwé inú, ṣùgbọ́n kóńténíà náà kò tíì lè yanjú àwọn orúkọ kan náà. Ìfiṣe àpò kan kú pẹ̀lú àṣìṣe yíyanjú orúkọ bíi EAI_AGAIN, tàbí ohun-èlò kan kò rí ẹ̀rọ ìgbàlejò dátàbésì tí ẹ̀rọ ìgbàlejò yanjú láìsí ẹ̀sùn kankan. Kóńténíà náà kò lò résọ́lúfà tí VPN fi sísọ́lẹ̀. Docker ṣàdàkọ ìṣètò résọ́lúfà ẹ̀rọ ìgbàlejò nígbà tí wọ́n dá kóńténíà náà, kò sì sí ohun tí ó tún ṣàdàkọ rẹ̀ lẹ́yìn náà.
Ìwòye méjì ti résọ́lúfà lórí ẹ̀rọ kan
Lórí Linux, Docker ń fún kóńténíà kọ̀ọ̀kan ní àdàkọ ìṣètò résọ́lúfà ẹ̀rọ ìgbàlejò ní àsìkò dídá, ó ń ṣe àyọkà àwọn àdírẹ́sì loopback, ó sì ń ṣiṣẹ́ DNS sáfà tí a kó sínú rẹ̀ ní 127.0.0.11 tí ó ń fi àwọn ìbéèrè ránṣẹ́ jáde. Oníbàárà VPN tí ó bá tún /etc/resolv.conf kọ lẹ́yìn tí kóńténíà bẹ̀rẹ̀ kò yí ohunkóhun padà nínú rẹ̀. Pípadà bẹ̀rẹ̀ kóńténíà náà ń ràn án lọ́wọ́ nìkan bí résọ́lúfà ẹ̀rọ ìgbàlejò bá wà ní ìtẹ́lọ́rùn ní àkókò yẹn.
Docker Desktop lórí macOS tàbí Windows ń fi ìpele kún un, nítorí pé daemon ń gbé nínú ẹ̀rọ tí kò ní ara. Résọ́lúfà VPN ti ẹ̀rọ ìgbàlejò lè máà hàn sí VM yẹn rárá, nítorí náà pípadà bẹ̀rẹ̀ kò yí ohunkóhun padà. Fi ìwòye méjèèjì wé kí o tó yan àtúnṣe: docker exec mycontainer cat /etc/resolv.conf lẹ́gbẹ̀ẹ́ àkọsílẹ̀ àwọn résọ́lúfà ẹ̀rọ ìgbàlejò.
Kóńténíà tí ó bá ṣe àkọsílẹ̀ résọ́lúfà gbogbo ènìyàn nígbà tí ẹ̀rọ ìgbàlejò ń ṣe àkọsílẹ̀ ti inú yóò yanjú àwọn orúkọ gbogbo ènìyàn yóò sì kùnà lórí àwọn ti inú. Ìpín yẹn ni ìbuwọ́lù ìṣòro yìí.
Àṣàyàn A: fi résọ́lúfà ọ̀nà àbẹ̀wò ránṣẹ́ fún kóńténíà kọ̀ọ̀kan
Docker ń gba àwọn ìṣètò DNS fún kóńténíà kọ̀ọ̀kan, ìyẹn sì ni ìyípadà tí ó kéré jù tí ó ń ṣiṣẹ́. Kọ́kọ́ ka àwọn àdírẹ́sì résọ́lúfà VPN: scutil --dns lórí macOS, resolvectl status tàbí ìjáde ipò oníbàárà fúnra rẹ̀ lórí Linux. Lẹ́yìn náà bẹ̀rẹ̀ kóńténíà náà pẹ̀lú wọn, fún àpẹẹrẹ docker run --dns 192.168.2.1 --dns 192.168.123.1 myimage. Nínú Compose ìṣètò kan náà jẹ́ àkọsílẹ̀ lábẹ́ iṣẹ́ náà, níbi tí ó ti wà nínú ìṣàkóso ẹ̀yà-ìtẹ̀ dípò ìtàn shell ẹnìkan.
Àkójọ dns nínú /etc/docker/daemon.json kan máa ń kan gbogbo kóńténíà tuntun, èyí tí ó dà bí ó mọ́ tónítóní ṣùgbọ́n kì í ṣe bẹ́ẹ̀. Ó tún kan nígbà tí ọ̀nà àbẹ̀wò bá ti dá, nígbà yẹn résọ́lúfà tí a lè dé nìkan nípasẹ̀ VPN máa ń ba ìfase áwòrán déesì jẹ́. Àwọn ìṣètò fún kóńténíà kọ̀ọ̀kan rọrùn láti ṣàlàyé àti rọrùn láti yí padà.
Àṣàyàn B: jẹ́ kí kóńténíà pín nẹ́tíwọ́kì ẹ̀rọ ìgbàlejò
Nẹ́tíwọ́kì ẹ̀rọ ìgbàlejò ń yẹ̀wò àdàkọ náà pátápátá, nítorí kóńténíà ń lò résọ́lúfà ẹ̀rọ ìgbàlejò àti ọ̀nà àbẹ̀wò ẹ̀rọ ìgbàlejò. Ó tún ń yọ ìsọ̀kan nẹ́tíwọ́kì tí o ṣeé ṣe kí o fẹ́ kúrò, kò sì ń hùwà kan náà lábẹ́ Docker Desktop. Lórí Linux ìyẹn ni àṣàyàn tí ó wà ní àkànṣe fún irinṣẹ́ ìgbà kan tí ó gbọdọ̀ yanjú àwọn orúkọ inú.
Fún àwọn ìkọ́lé, kò sí ọ̀kan nínú àwọn àṣàyàn méjèèjì tí ó kan, nítorí àwọn ìgbésẹ̀ ìkọ́lé kì í jogún àwọn àsíá àkókò ìṣiṣẹ́. Kọ́ pẹ̀lú nẹ́tíwọ́kì ẹ̀rọ ìgbàlejò níbi tí pẹpẹ bá gbà á, tàbí pa ìfiṣe àwọn ohun tí ó gbára lé mọ́ ní ìpele tí kò nílò ọ̀nà àbẹ̀wò.
Ohun tí àwọn àṣàyàn méjèèjì kò túnṣe
Àdírẹ́sì DNS kò ní láárí bí kóńténíà kò bá ní ọ̀nà sí i. Résọ́lúfà VPN sábà máa ń jókòó nínú àyè àdírẹ́sì ọ̀nà àbẹ̀wò, nítorí náà kóńténíà nílò ọ̀nà sí àkọ́kọ́ yẹn. Àfikún ẹ̀rọ ìgbàlejò ti Docker sábà máa ń darí jáde nípasẹ̀ ẹ̀rọ ìgbàlejò, ìyẹn sì tó nígbà tí ẹ̀rọ ìgbàlejò bá ní ọ̀nà ọ̀nà àbẹ̀wò tí ìfiránṣẹ́ sì ti ṣí. Àwọn nẹ́tíwọ́kì àfikún tí ó ní àdàkọ àdírẹ́sì tiwọn lè gbá pẹ̀lú subnet VPN, nígbà yẹn àwọn ìbéèrè máa ń lọ sí ibòmíì pátápátá.
Ṣàyẹ̀wò subnet nẹ́tíwọ́kì Docker pẹ̀lú subnet VPN kí o tó ṣàtúnṣe résọ́lúfà fúnra rẹ̀. Àgbáṣepọ̀ ń dá àṣìṣe tí ó dà bíi sáfà DNS tí ó bàjẹ́ gan-an.
Ṣàyẹ̀wò nínú kóńténíà
Dánwò pẹ̀lú getent hosts db.internal nínú kóńténíà dípò aṣàwákiri tàbí àyíká ìṣiṣẹ́ èdè, nítorí àwọn wọnnì ń lo ìlànà DNS tiwọn àti káṣì tiwọn. Bí getent bá yanjú orúkọ náà tí ohun-èlò náà sì ṣì kùnà, résọ́lúfà ti tọ́ ní báyìí àti ìṣòro tí ó kù wà ní ìpele ohun-èlò. Bí kò bá yanjú rẹ̀, ìgbésẹ̀ DNS kò tíì parí.
Tún kóńténíà náà dá lẹ́yìn tí o bá yí àwọn ìṣètò DNS rẹ̀ padà. Ṣíṣe àtúnṣe /etc/resolv.conf nínú kóńténíà tí ń ṣiṣẹ́ máa ń parẹ́ pẹ̀lú rẹ̀ ó sì ń fi ìṣòro ìṣètò náà pamọ́ fún ìgbà tí ẹnìkan yóò lò láti tún un bẹ̀rẹ̀.