Prevádzka proxy a DNS servera na jednom Docker hostiteľovi nespája ich DNS cesty. Dôležité sú tri oddelené vzťahy:

  • Dostupnosť siete. Samostatné Compose projekty majú zvyčajne samostatné predvolené siete. Umiestnite služby na vhodnú zdieľanú sieť, buď v rámci jedného projektu, alebo prostredníctvom siete výslovne zdieľanej medzi projektmi.
  • Objavovanie služieb. Vstavaný DNS vlastnej Docker siete dokáže prekladať názvy kontajnerov. To aplikácii umožní objaviť suseda; ale automaticky ho nevyberie ako svoj DNS resolver.
  • Výber resolvera. Určte resolver používaný vnútri proxy kontajnera. Pole dns v Compose prijíma adresy DNS serverov. Názov ako dns.local, ktorý sa v aplikácii prekladá, z neho nerobí platnú hodnotu tohto poľa.

Sledujte dopyt z proxy kontajnera k jeho nakonfigurovanej adrese resolvera. Overte, že na tej adrese existuje trasa a DNS poslucháč. Publikovanie portu 53 hostiteľa vytvára prístupovú cestu na strane hostiteľa; ale nehovorí kontajnerom, aby ju používali. Kontajnery zdieľajúce sieť môžu namiesto toho komunikovať priamo.

Ak konfigurácia odkazuje na adresu DNS kontajnera, udržujte ju stabilnú pri kompatibilnej konfigurácii IPAM. Dynamicky pridelená adresa skopírovaná z včerajšieho kontajnera môže pri opätovnom vytvorení zlyhať. Preskúmajte aj nadradenú cestu resolvera: preposielanie nezodpovedaných dopytov späť jemu samému vytvára inú poruchu než nedostupný resolver.

Nakoniec určte, kto prekladá cieľ. HTTP proxy prekladajúca názov CONNECT môže túto cestu kontajnera používať; SOCKS klient prekladajúci lokálne nemusí. Vyhľadanie na hostiteľovi dokazuje trasu hostiteľa, nie trasu procesu proxy.

Súvisiace články