Miks puhverserveri konteiner ei kasuta DNS-konteinerit automaatselt
Dockeri hosti jagamine, võrgu jagamine ja resolveri valimine on kolm erinevat asja. Jälgi DNS-päringut puhverserveri seest.
Puhverserveri ja DNS-serveri käivitamine samas Dockeri hostis ei ühenda nende DNS-teid. Olulised on kolm eraldi seost:
- Võrgu kättesaadavus. Eraldi Compose-projektidel on tavaliselt eraldi vaikevõrgud. Aseta teenused sobivasse jagatud võrku, kas ühe projekti sees või projektide vahel selgesõnaliselt jagatud võrgu kaudu.
- Teenuse avastamine. Kohandatud Dockeri võrgu sisseehitatud DNS suudab konteinerite nimesid lahendada. See lubab rakendusel naabri avastada; kuid ei vali seda naabrit automaatselt oma DNS-resolveriks.
- Resolveri valik. Tehke kindlaks puhverserveri konteineris kasutatav resolver. Compose'i väli
dnsvõtab DNS-serverite aadresse. Nimi nagudns.local, mis rakenduses laheneb, ei muuda seda selle välja jaoks kehtivaks väärtuseks.
Jälgi päringut puhverserveri konteinerist selle seadistatud resolveri aadressini. Kinnita, et sellel aadressil on marsruut ja DNS-kuulaja. Hosti pordi 53 avaldamine loob hostipoolse juurdepääsutee; see ei ütle konteineritele, et nad seda kasutaksid. Võrku jagavad konteinerid võivad selle asemel otse suhelda.
Kui seadistus viitab DNS-konteineri aadressile, hoidke see ühilduva IPAM-i seadistuse korral stabiilsena. Dünaamiliselt eraldatud aadress, mis on kopeeritud eilsest konteinerist, võib uuesti loomisel ebaõnnestuda. Uurige ka resolveri ülesvoolu teed: vastamata päringute tagasisaatmine talle endale tekitab teistsuguse tõrke kui kättesaamatu resolver.
Lõpuks tehke kindlaks, kes sihtkoha lahendab. CONNECT-nime lahendav HTTP-puhverserver võib seda konteineri teed kasutada; lokaalselt lahendav SOCKS-klient ei pruugi. Hosti päring tõestab hosti marsruuti, mitte puhverserveri protsessi marsruuti.