Прокси болон DNS серверийг нэг Docker хост дээр ажиллуулах нь тэдний DNS замыг холбодоггүй. Гурван тусдаа хамаарал чухал:

  • Сүлжээний хүртээмж. Тусдаа Compose төслүүд ихэвчлэн тусдаа өгөгдмөл сүлжээтэй байдаг. Үйлчилгээг тохирох хуваалцсан сүлжээнд байрлуул, нэг төслийн дотор эсвэл төслүүдийн хооронд тодорхой хуваалцсан сүлжээгээр дамжуулан.
  • Үйлчилгээ илрүүлэх. Өөрчлөн тохируулсан Docker сүлжээний суулгасан DNS контейнерын нэрийг шийдэж чадна. Энэ нь програмд хөршийг илрүүлэх боломж олгодог; гэхдээ тэр хөршийг өөрийн DNS resolver болгон автоматаар сонгодоггүй.
  • Resolver сонгох. Прокси контейнер дотор ашиглагдаж буй resolver-ийг тодорхойл. Compose-н dns талбар DNS серверийн хаягуудыг хүлээн авдаг. Програмд шийдэгддэг dns.local шиг нэр түүнийг тухайн талбарын хүчинтэй утга болгодоггүй.

Асуулгыг прокси контейнерээс түүний тохируулсан resolver хаяг хүртэл дага. Тэр хаяг дээр зам болон DNS сонсогч байгааг батал. Хост порт 53-ыг нийтлэх нь хост талд нэвтрэх зам үүсгэдэг; гэхдээ контейнеруудад үүнийг ашиглахыг хэлдэггүй. Сүлжээ хуваалцдаг контейнерууд оронд нь шууд харилцаж болно.

Хэрэв тохиргоо DNS контейнерын хаягийг дурдвал нийцтэй IPAM тохиргооны дор түүнийг тогтвортой байлга. Өчигдрийн контейнероос хуулсан динамикаар олгогдсон хаяг дахин үүсгэх үед бүтэлгүйтэж болно. Мөн resolver-ийн дээд замыг шалга: хариултгүй асуулгыг өөр рүү нь буцааж илгээх нь хүрэх боломжгүй resolver-ээс өөр алдаа үүсгэдэг.

Эцэст нь, очих газрыг хэн шийдэж байгааг тодорхойл. CONNECT нэрийг шийддэг HTTP прокси энэ контейнер замыг ашиглаж болно; локалаар шийддэг SOCKS клиент ашиглахгүй байж магадгүй. Хост дээрх хайлт нь хост-ын замыг баталдаг, прокси процессын замыг биш.

Холбоотой нийтлэлүүд