Proksi konteyneri DNS konteynerindən niyə avtomatik istifadə etmir
Docker hostunu paylaşmaq, şəbəkəni paylaşmaq və resolver seçmək üç fərqli məsələdir. DNS sorğusunu proksinin içindən izləyin.
Bir Docker hostunda proksi və DNS serveri işə salmaq onların DNS yollarını birləşdirmir. Üç ayrı əlaqə vacibdir:
- Şəbəkə əlçatanlığı. Ayrı Compose layihələrinin adətən ayrı defolt şəbəkələri olur. Xidmətləri uyğun ortaq şəbəkəyə yerləşdirin, ya bir layihə daxilində, ya da layihələr arasında açıq şəkildə paylaşılan şəbəkə vasitəsilə.
- Xidmət kəşfi. Fərdi Docker şəbəkəsinin daxili DNS-i konteyner adlarını həll edə bilər. Bu, tətbiqə qonşunu kəşf etməyə imkan verir; lakin həmin qonşunu avtomatik olaraq DNS resolveri kimi seçmir.
- Resolver seçimi. Proksi konteynerinin içində istifadə olunan resolveri müəyyənləşdirin. Compose-un
dnssahəsi DNS server ünvanlarını qəbul edir. Tətbiqdə həll olunandns.localkimi ad bu sahə üçün etibarlı dəyər olmur.
Sorğunu proksi konteynerindən onun konfiqurasiya edilmiş resolver ünvanına qədər izləyin. Həmin ünvanda marşrut və DNS dinləyicisinin olduğunu təsdiqləyin. Host portunu 53-ü dərc etmək host tərəfində giriş yolu yaradır; konteynerlərə ondan istifadə etməyi demir. Şəbəkəni paylaşan konteynerlər əvəzində birbaşa əlaqə qura bilər.
Konfiqurasiya DNS konteynerinin ünvanına istinad edirsə, onu uyğun IPAM konfiqurasiyası altında sabit saxlayın. Dünənki konteynerdən köçürülmüş dinamik ayrılmış ünvan yenidən yaradılma zamanı uğursuz ola bilər. Həmçinin resolverin yuxarı axın yolunu yoxlayın: cavabsız sorğuları özünə qaytarmaq əlçatmaz resolverdən fərqli bir nasazlıq yaradır.
Nəhayət, təyinatı kimin həll etdiyini müəyyənləşdirin. CONNECT adını həll edən HTTP proksisi bu konteyner yolundan istifadə edə bilər; lokal olaraq həll edən SOCKS klienti isə istifadə etməyə bilər. Host axtarışı hostun marşrutunu sübut edir, proksi prosesinin marşrutunu deyil.