Menjalankan proksi dan pelayan DNS pada satu hos Docker tidak menghubungkan laluan DNS mereka. Tiga hubungan berasingan penting:

  • Kebolehcapaian rangkaian. Projek Compose berasingan biasanya mempunyai rangkaian lalai berasingan. Letakkan perkhidmatan pada rangkaian dikongsi yang sesuai, sama ada dalam satu projek atau melalui rangkaian yang dikongsi secara jelas antara projek.
  • Penemuan perkhidmatan. DNS terbenam rangkaian Docker tersuai boleh menyelesaikan nama kontena. Itu membolehkan aplikasi menemui jiran; tetapi ia tidak memilih jiran itu secara automatik sebagai penyelesai DNSnya.
  • Pemilihan penyelesai. Kenal pasti penyelesai yang digunakan dalam kontena proksi. Medan dns Compose menerima alamat pelayan DNS. Nama seperti dns.local yang diselesaikan dalam aplikasi tidak menjadikannya nilai sah untuk medan itu.

Jejaki pertanyaan dari kontena proksi ke alamat penyelesai yang dikonfigurasikan. Sahkan terdapat laluan dan pendengar DNS pada alamat itu. Menerbitkan port 53 hos mencipta laluan akses di sebelah hos; tetapi ia tidak memberitahu kontena untuk menggunakannya. Kontena yang berkongsi rangkaian boleh berkomunikasi secara langsung sebaliknya.

Jika konfigurasi merujuk alamat kontena DNS, kekalkan ia stabil di bawah konfigurasi IPAM yang serasi. Alamat yang diperuntukkan secara dinamik dan disalin daripada kontena semalam mungkin gagal semasa penciptaan semula. Periksa juga laluan huluan penyelesai: menghantar pertanyaan tidak berjawab kembali kepada dirinya sendiri mencipta kegagalan yang berbeza daripada penyelesai yang tidak dapat dicapai.

Akhir sekali, kenal pasti siapa yang menyelesaikan destinasi. Proksi HTTP yang menyelesaikan nama CONNECT boleh menggunakan laluan kontena ini; klien SOCKS yang menyelesaikan secara setempat mungkin tidak. Carian pada hos membuktikan laluan hos, bukan laluan proses proksi.

Artikel berkaitan