Mengakses Proxy Host dari Kontainer Docker Bridge
Pilih alamat proxy yang dapat dijangkau kontainer dan bedakan endpoint publik dari proxy yang berjalan pada host Docker.
Pada kontainer biasa dengan jaringan bridge, 127.0.0.1 adalah alamat loopback kontainer sendiri. Proxy yang mendengarkan di localhost laptop tidak otomatis mendengarkan dalam tiap kontainer.
Ini menjelaskan perbedaan umum: URL proxy yang sama bekerja di terminal host tetapi koneksinya ditolak dalam kontainer. Alamat itu menunjuk endpoint jaringan berbeda di masing-masing tempat.
Proxy publik dapat dipakai langsung
Jika endpoint dari layanan atau daftar proxy HTTP benar-benar IP publik yang terjangkau, berikan alamat itu ke aplikasi, bukan mengubahnya menjadi localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Ganti alamat dokumentasi dan image. Program dalam image tetap harus mendukung variabel lingkungan tersebut; Docker tidak mengubah setiap socket menjadi permintaan proxy hanya karena variabel itu ada.
Jika proxy berjalan di host Docker
Docker Desktop menyediakan host.docker.internal untuk mengakses alamat internal host. Pada konfigurasi Engine native yang didukung, pemetaan host dapat menyediakan nama konvensional itu:
docker run --rm \
--add-host host.docker.internal=host-gateway \
-e HTTP_PROXY=http://host.docker.internal:8080 \
-e HTTPS_PROXY=http://host.docker.internal:8080 \
your-image
Ini mengubah resolusi nama, bukan perintah port forwarding. Pada Linux native, layanan yang hanya terikat ke loopback host mungkin tetap tidak terjangkau lewat alamat bridge host. Listener, firewall, dan rute kontainer harus mengizinkan koneksi. Jika mengubah listener, batasi ke klien yang memerlukan akses, bukan membuat proxy terbuka tanpa autentikasi.
Uji dari tempat yang sama dengan aplikasi
Hasil curl pada host hanya menguji rute host. Jalankan permintaan dari lingkungan kontainer dan periksa apakah mencapai endpoint yang dimaksud.
‘Host’ juga berarti mesin yang menjalankan Docker Engine. Dengan Engine jarak jauh, itu belum tentu laptop Anda. Karena itu, IP loopback dari aplikasi desktop lokal sangat kecil kemungkinannya bekerja tanpa perubahan pada builder atau server jauh.
Pisahkan masalah penarikan image: daemon mengunduh image sebelum aplikasi dapat memakai lingkungan di atas.