Slik setter du opp proxy i Docker (containere, Compose og builds)
Updated:
Når du kjører skrapere med flere containere, automatiseringsarbeidere eller DePIN-noder på én enkelt vertsserver, lar miljøvariablene HTTP_PROXY og HTTPS_PROXY per container hver tjeneste gå ut via sin egen dedikerte statiske IPv4-adresse fra VinaProxy uten å endre vertmaskinens rutingtabell.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40 000 VND
- 5+ IP-er35 000 VND
- 10+ IP-er25 000 VND
- 20+ IP-er25 000 VND
- 50+ IP-er25 000 VND
- 100+ IP-er25 000 VND
- 200+ IP-er25 000 VND
- 500+ IP-er25 000 VND
- 1000+ IP-er22 000 VND
- 2000+ IP-er20 000 VND
- 1 IP40 000 VND
- 5+ IP-er35 000 VND
- 10+ IP-er25 000 VND
- 20+ IP-er25 000 VND
- 50+ IP-er25 000 VND
- 100+ IP-er25 000 VND
- 200+ IP-er25 000 VND
- 500+ IP-er25 000 VND
- 1000+ IP-er22 000 VND
- 2000+ IP-er20 000 VND
Forstå de tre konfigurasjonsområdene for Docker-proxyer
Docker skiller mellom kjøretidstrafikk i containere, trafikk under bildebygging og daemon-uthentinger fra registre:
| Docker-omfang | Hvor det konfigureres | Hva som rutes |
|---|---|---|
| 1. Containerens kjøretid | docker run -e HTTP_PROXY=... eller Compose environment: | Trafikk generert av appen inne i den spesifikke containeren |
2. Bildebygging (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Nedlastinger via pakkebehandlere (apt, pip, npm) under bygging |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull- og docker push-forespørsler til registre |
Beste praksis for Docker Compose og NO_PROXY-regler
- Angi variabler i både store (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) og små (http_proxy,https_proxy,no_proxy) bokstaver, slik at alle Linux CLI-verktøy og kjøremiljøer fanger dem opp - Oppgi alltid interne tjenestenavn i Docker Compose (f.eks.
NO_PROXY=localhost,127.0.0.1,redis,postgres), slik at trafikk mellom containere forblir på det lokale bridge-nettverket - Bak aldri proxy-passord inn i offentlige images med
ENVi enDockerfile– tilfør dem heller under kjøretid via.envellerdocker-compose.yml
Trinn for trinn
- 1
Formater proxyen som http://user:pass@ip:port
Konverter din VinaProxy
ip:port:user:pass-linje ved hjelp av vår Proxy Format Converter. - 2
Legg til miljøvariabler i docker-compose.yml
Under tjenestens
environment:, definerHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyogNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Start eller gjenopprett containeren
Kjør
docker compose up -dfor å ta i bruk miljøvariablene. - 4
Bekreft utgående IP fra innsiden av containeren
Kjør
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipfor å bekrefte at containeren går ut via din proxy-IP.
Ofte stilte spørsmål
Hvorfor når ikke containeren min Redis- eller Postgres-containeren etter at HTTP_PROXY er satt?
Uten NO_PROXY prøver HTTP-klienten å nå interne tjenestenavn som redis eller db via den eksterne proxyen. Legg til NO_PROXY=localhost,127.0.0.1,redis,db (og med små bokstaver no_proxy) for å omgå proxyen for interne bridge-verter.
Kan jeg tilordne 20 forskjellige proxyer til 20 containere på én VPS?
Ja. Definer hver containertjeneste (eller send inn separate .env-variabler) med sin egen http://user:pass@ip:port-streng.
Hvorfor sette proxy-variabler med både store og små bokstaver?
Enkelte Linux-biblioteker (som libcurl) sjekker små bokstaver http_proxy / https_proxy først, mens Go- og Node-verktøy ofte sjekker store bokstaver HTTP_PROXY / HTTPS_PROXY.
Tilordne dedikerte statiske IP-er til hver Docker-container
Umiddelbare dedikerte IPv4- og statiske ISP-proxyer uten forbruksgrenser i 7 land.
Kjøp Docker-proxyer