Välityspalvelimen ja DNS-palvelimen ajaminen samalla Docker-isännällä ei yhdistä niiden DNS-polkuja. Kolme erillistä suhdetta on tärkeä:

  • Verkon tavoitettavuus. Erillisillä Compose-projekteilla on yleensä erilliset oletusverkot. Sijoita palvelut sopivaan jaettuun verkkoon joko yhden projektin sisällä tai projektien välillä nimenomaisesti jaettuun verkkoon.
  • Palvelujen löytäminen. Mukautetun Docker-verkon sisäänrakennettu DNS voi ratkaista konttien nimiä. Se antaa sovellukselle mahdollisuuden löytää naapurin, mutta ei valitse sitä naapuria automaattisesti DNS-resolverikseen.
  • Resolverin valinta. Tunnista välityspalvelinkontin sisällä käytetty resolver. Composen dns-kenttä ottaa DNS-palvelimien osoitteita. Nimi kuten dns.local, joka ratkeaa sovelluksessa, ei tee siitä kelvollista arvoa tälle kentälle.

Seuraa kysely välityspalvelinkontista sen määritettyyn resolver-osoitteeseen. Varmista, että kyseisessä osoitteessa on reitti ja DNS-kuuntelija. Isännän portin 53 julkaiseminen luo isännän puolelle pääsypolun, mutta ei kerro konteille, että niiden pitäisi käyttää sitä. Verkkoa jakavat kontit voivat sen sijaan kommunikoida suoraan.

Jos määritys viittaa DNS-kontin osoitteeseen, pidä se vakaana yhteensopivassa IPAM-määrityksessä. Dynaamisesti jaettu osoite, joka on kopioitu eilisestä kontista, voi epäonnistua uudelleenluonnissa. Tarkista myös resolverin ylävirran polku: vastaamattomien kyselyjen lähettäminen takaisin itselleen aiheuttaa erilaisen vian kuin tavoittamaton resolver.

Lopuksi selvitä, kuka ratkaisee kohteen. HTTP-välityspalvelin, joka ratkaisee CONNECT-nimen, voi käyttää tätä kontin polkua; paikallisesti ratkaiseva SOCKS-asiakas ei ehkä. Isäntäkysely todistaa isännän reitin, ei välityspalvelinprosessin reittiä.

Aiheeseen liittyvät artikkelit