Cara Mengatur Proxy di Docker (Kontainer, Compose & Build)
Diperbarui:
Saat menjalankan scraper multi-kontainer, worker otomatisasi, atau node DePIN di satu server host, meneruskan variabel lingkungan HTTP_PROXY dan HTTPS_PROXY per kontainer memungkinkan setiap layanan keluar melalui alamat IPv4 statis khusus dari VinaProxy tanpa mengubah tabel perutean mesin host.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
Memahami 3 Cakupan Konfigurasi Proxy di Docker
Docker memisahkan lalu lintas runtime kontainer, lalu lintas build image, dan pull repositori daemon:
| Cakupan Docker | Lokasi Konfigurasi | Lalu Lintas yang Dirutekan |
|---|---|---|
| 1. Runtime Kontainer (Paling Umum) | docker run -e HTTP_PROXY=... atau Compose environment: | Lalu lintas yang dihasilkan oleh aplikasi di dalam kontainer tertentu |
2. Build Image (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Unduhan pengelola paket (apt, pip, npm) selama proses build |
3. Daemon Docker (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Permintaan docker pull dan docker push ke registri |
Praktik Terbaik Docker Compose & Aturan NO_PROXY
- Tetapkan variabel huruf besar (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) dan huruf kecil (http_proxy,https_proxy,no_proxy) agar semua alat CLI Linux dan runtime bahasa dapat mendeteksinya - Selalu cantumkan nama layanan internal Docker Compose (misalnya,
NO_PROXY=localhost,127.0.0.1,redis,postgres) agar lalu lintas antarkontainer tetap berada di jaringan bridge lokal - Jangan pernah menuliskan kata sandi proxy secara langsung di image publik dengan
ENVdi dalamDockerfile—masukkan saat runtime melalui.envataudocker-compose.yml
Langkah demi langkah
- 1
Format proxy Anda menjadi http://user:pass@ip:port
Ubah baris
ip:port:user:passVinaProxy Anda menggunakan Alat Pengonversi Format Proxy. - 2
Tambahkan variabel lingkungan ke docker-compose.yml
Di bawah
environment:layanan Anda, tentukanHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxy, danNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Jalankan atau buat ulang kontainer
Jalankan
docker compose up -duntuk menerapkan variabel lingkungan baru. - 4
Verifikasi IP keluar dari dalam kontainer
Jalankan
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipuntuk memastikan kontainer keluar melalui IP proxy Anda.
Pertanyaan umum
Mengapa kontainer saya tidak dapat mengakses Redis atau Postgres setelah menyetel HTTP_PROXY?
Tanpa NO_PROXY, klien HTTP mencoba menjangkau nama layanan internal seperti redis atau db melalui proxy eksternal. Tambahkan NO_PROXY=localhost,127.0.0.1,redis,db (dan huruf kecil no_proxy) untuk melewati proxy pada host bridge internal.
Bisakah saya menetapkan 20 proxy berbeda ke 20 kontainer dalam satu VPS?
Ya. Tentukan setiap layanan kontainer (atau teruskan variabel .env yang berbeda) dengan string http://user:pass@ip:port masing-masing.
Mengapa harus menyetel variabel proxy huruf besar dan huruf kecil?
Beberapa pustaka Linux (seperti libcurl) memeriksa http_proxy / https_proxy huruf kecil terlebih dahulu, sementara alat Go dan Node sering kali memeriksa HTTP_PROXY / HTTPS_PROXY huruf besar.
Tetapkan IP statis khusus untuk setiap kontainer Docker
Proxy IPv4 Khusus dan ISP Statis tanpa batas kuota instan di 7 negara.
Beli Proxy Docker