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 dns v Composeu sprejema naslove strežnikov DNS. Ime, kot je dns.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.

Sorodni članki