Cara menyediakan proksi dalam Docker (Kontena, Compose & Binaan)
Updated:
Apabila menjalankan pengikis berbilang kontena, pekerja automasi, atau nod DePIN pada satu pelayan hos, penghantaran pemboleh ubah persekitaran HTTP_PROXY dan HTTPS_PROXY bagi setiap kontena membolehkan setiap perkhidmatan keluar melalui alamat IPv4 statik khusus miliknya sendiri daripada VinaProxy tanpa mengubah jadual penghalaan mesin hos.
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 skop konfigurasi proksi Docker
Docker mengasingkan trafik masa jalan kontena, trafik binaan imej, dan tarikan registri oleh daemon:
| Skop Docker | Lokasi Konfigurasi | Perkara yang Dihala |
|---|---|---|
| 1. Masa Jalan Kontena | docker run -e HTTP_PROXY=... atau Compose environment: | Trafik yang dijana oleh aplikasi di dalam kontena khusus tersebut |
2. Binaan Imej (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Muat turun pengurus pakej (apt, pip, npm) semasa binaan |
3. Daemon Docker (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Permintaan docker pull dan docker push ke registri |
Amalan terbaik Docker Compose & peraturan NO_PROXY
- Tetapkan kedua-dua pemboleh ubah huruf besar (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) dan huruf kecil (http_proxy,https_proxy,no_proxy) supaya semua alat CLI Linux dan masa jalanan bahasa dapat mengesannya - Sentiasa senaraikan nama perkhidmatan Docker Compose dalaman (cth.,
NO_PROXY=localhost,127.0.0.1,redis,postgres) supaya trafik antara kontena kekal dalam rangkaian jambatan tempatan - Jangan sekali-kali menyematkan kata laluan proksi ke dalam imej awam dengan
ENVdi dalamDockerfile—suntikkannya semasa masa jalanan melalui.envataudocker-compose.yml
Langkah demi langkah
- 1
Formatkan proksi anda sebagai http://user:pass@ip:port
Tukarkan baris VinaProxy
ip:port:user:passanda menggunakan Penukar Format Proksi kami. - 2
Tambah pemboleh ubah persekitaran pada docker-compose.yml
Di bawah
environment:perkhidmatan anda, tentukanHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxy, danNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Mulakan atau cipta semula kontena
Jalankan
docker compose up -duntuk menggunakan pemboleh ubah persekitaran tersebut. - 4
Sahkan IP keluar dari dalam kontena
Laksanakan
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipuntuk mengesahkan bahawa kontena keluar melalui IP proksi anda.
Soalan lazim
Mengapa kontena saya tidak dapat mencapai kontena Redis atau Postgres selepas menetapkan HTTP_PROXY?
Tanpa NO_PROXY, klien HTTP anda cuba mencapai nama perkhidmatan dalaman seperti redis atau db melalui proksi luaran. Tambahkan NO_PROXY=localhost,127.0.0.1,redis,db (dan huruf kecil no_proxy) untuk memintas proksi bagi hos jambatan dalaman.
Bolehkah saya menetapkan 20 proksi berbeza kepada 20 kontena pada satu VPS?
Boleh. Tentukan setiap perkhidmatan kontena (atau hantar pemboleh ubah .env yang berbeza) dengan rentetan http://user:pass@ip:port miliknya sendiri.
Mengapa perlu menetapkan kedua-dua pemboleh ubah proksi huruf besar dan huruf kecil?
Sesetengah pustaka Linux (seperti libcurl) menyemak huruf kecil http_proxy / https_proxy terlebih dahulu, manakala alat Go dan Node sering menyemak huruf besar HTTP_PROXY / HTTPS_PROXY.
Tetapkan IP statik khusus untuk setiap kontena Docker
Proksi IPv4 Khusus dan ISP Statik tanpa had segera di 7 negara.
Beli Proksi Docker