Mengapa Proxy Korporat Anda Mencoba Menyelesaikan Nama Layanan Compose
Klien HTTP dapat mengirim permintaan layanan internal ke proxy yang dikonfigurasi sebelum menggunakan resolusi nama layanan Docker. Tambahkan bypass yang disengaja untuk klien yang tepat.
Aplikasi mencapai internet melalui proxy korporatnya, tetapi http://catalog:8080/ gagal dan proxy tidak dapat menyelesaikan “catalog”. Permintaan itu mungkin tidak pernah menggunakan DNS internal Docker.
Klien HTTP dapat memilih proxynya sebelum membuat koneksi langsung. Proxy eksternal kemudian menerima nama yang maknanya hanya ada di dalam jaringan Compose.
- Gunakan nama host dalam permintaan. Layanan Compose dapat ditemukan berdasarkan nama layanan pada jaringan yang sesuai. Tambahkan
catalogke konfigurasi bypass yang didukung klien pemakai, alih-alih mengodekan IP kontainer secara hard-code yang dapat berubah. - Pertahankan pengecualian yang ada. Untuk klien yang sadar lingkungan, gabungkan entri yang relevan dengan daftar organisasi:
NO_PROXY=localhost,127.0.0.1,catalog
no_proxy=localhost,127.0.0.1,catalog
Periksa pustaka atau executable sebenarnya di image untuk penanganan huruf besar-kecil, versi, dan tata bahasa pencocokan. Tidak ada parser NO_PROXY universal. Program bernama wget di image kecil belum tentu berperilaku seperti GNU Wget.
Setelah permintaan memilih perutean langsung, periksa jaringan bersama pemanggil dan layanan, layanan yang mendengarkan, dan port kontainer. Port host yang dipublikasikan adalah endpoint lain. Bypass tidak dapat menambahkan sambungan jaringan yang hilang, sama seperti membuat ulang jaringan tidak dapat mengajari proxy eksternal nama Compose privat.
Pertahankan pemisahan yang dimaksudkan: permintaan internal menggunakan jalur internalnya; permintaan eksternal mempertahankan proxy yang disetujui. Menonaktifkan proxy secara global dapat menyembunyikan satu kegagalan ini sekaligus menghapus rute yang diperlukan untuk permintaan eksternal berikutnya.