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.

  1. Gunakan nama host dalam permintaan. Layanan Compose dapat ditemukan berdasarkan nama layanan pada jaringan yang sesuai. Tambahkan catalog ke konfigurasi bypass yang didukung klien pemakai, alih-alih mengodekan IP kontainer secara hard-code yang dapat berubah.
  2. 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.

Artikel terkait