Zakaj proxy vsebnik ne uporablja DNS vsebnika samodejno
Deljenje gostitelja Docker, deljenje omrežja in izbira razreševalnika so tri različne stvari. Sledite poizvedbi DNS od znotraj proxyja.
Izvajanje proxyja in strežnika DNS na istem gostitelju Docker ne poveže njunih poti DNS. Pomembni so trije ločeni odnosi:
- Dosegljivost omrežja. Ločeni projekti Compose imajo običajno ločena privzeta omrežja. Postavite storitve v ustrezno deljeno omrežje, bodisi znotraj enega projekta bodisi prek omrežja, ki je izrecno deljeno med projekti.
- Odkrivanje storitev. Vgrajeni DNS omrežja Docker po meri lahko razreši imena vsebnikov. To aplikaciji omogoči, da odkrije soseda; vendar tega soseda ne izbere samodejno kot svoj razreševalnik DNS.
- Izbira razreševalnika. Ugotovite, kateri razreševalnik se uporablja znotraj proxy vsebnika. Polje
dnsv Composeu sprejema naslove strežnikov DNS. Ime, kot jedns.local, ki se razreši v aplikaciji, še ni veljavna vrednost tega polja.
Sledite poizvedbi od proxy vsebnika do njegovega konfiguriranega naslova razreševalnika. Potrdite, da na tem naslovu obstajata pot in poslušalec DNS. Objava vrat gostitelja 53 ustvari dostopno pot na strani gostitelja; vendar vsebnikom ne pove, naj jo uporabljajo. Vsebniki, ki si delijo omrežje, lahko namesto tega komunicirajo neposredno.
Če se konfiguracija sklicuje na naslov DNS vsebnika, ga ohranite stabilnega v združljivi konfiguraciji IPAM. Dinamično dodeljen naslov, kopiran iz včerajšnjega vsebnika, lahko pri ponovnem ustvarjanju spodleti. Preglejte tudi nadrejeno pot razreševalnika: pošiljanje neodgovorjenih poizvedb nazaj k njemu samemu ustvari drugačno napako kot nedosegljiv razreševalnik.
Nazadnje ugotovite, kdo razreši cilj. Proxy HTTP, ki razreši ime CONNECT, lahko uporabi to pot vsebnika; odjemalec SOCKS, ki razrešuje lokalno, morda ne. Iskanje na gostitelju dokazuje pot gostitelja, ne poti procesa proxyja.