Sådan konfigurerer du en proxy i Docker (containere, Compose og builds)
Updated:
Når du kører scrapere med flere containere, automatiserings-workers eller DePIN-noder på én enkelt værtsmaskine, giver overførsel af miljøvariablerne HTTP_PROXY og HTTPS_PROXY for hver container mulighed for, at hver tjeneste udgår via sin egen dedikerede statiske IPv4-adresse fra VinaProxy uden at ændre værtsmaskinens routingtabel.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40.000 ₫
- 5+ IP'er35.000 ₫
- 10+ IP'er25.000 ₫
- 20+ IP'er25.000 ₫
- 50+ IP'er25.000 ₫
- 100+ IP'er25.000 ₫
- 200+ IP'er25.000 ₫
- 500+ IP'er25.000 ₫
- 1000+ IP'er22.000 ₫
- 2000+ IP'er20.000 ₫
- 1 IP40.000 ₫
- 5+ IP'er35.000 ₫
- 10+ IP'er25.000 ₫
- 20+ IP'er25.000 ₫
- 50+ IP'er25.000 ₫
- 100+ IP'er25.000 ₫
- 200+ IP'er25.000 ₫
- 500+ IP'er25.000 ₫
- 1000+ IP'er22.000 ₫
- 2000+ IP'er20.000 ₫
Forstå de 3 niveauer for Docker-proxykonfiguration
Docker adskiller trafik fra container-runtime, image-builds og dæmonens registry-pulls:
| Docker-omfang | Hvor det konfigureres | Hvad det dirigerer |
|---|---|---|
| 1. Container Runtime | docker run -e HTTP_PROXY=... eller Compose environment: | Trafik genereret af appen inde i den specifikke container |
2. Image Build (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Downloads fra pakkehåndteringer (apt, pip, npm) under build |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull- og docker push-anmodninger til registries |
Bedste praksis for Docker Compose og regler for NO_PROXY
- Angiv både variabler med store bogstaver (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) og små bogstaver (http_proxy,https_proxy,no_proxy), så alle Linux CLI-værktøjer og programmeringssprog opfanger dem - Angiv altid interne Docker Compose-tjenestenavne (f.eks.
NO_PROXY=localhost,127.0.0.1,redis,postgres), så trafikken mellem containerne forbliver på det lokale bridge-netværk - Indbyg aldrig proxy-adgangskoder i offentlige images med
ENVi enDockerfile– injicer dem ved kørsel via.envellerdocker-compose.yml
Trin for trin
- 1
Formatér din proxy som http://user:pass@ip:port
Konverter din VinaProxy
ip:port:user:pass-linje ved hjælp af vores Proxy Format Converter. - 2
Tilføj miljøvariabler til docker-compose.yml
Definer
HTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyogNO_PROXY=localhost,127.0.0.1,redis,dbunder din tjenestesenvironment:. - 3
Start eller genopret containeren
Kør
docker compose up -dfor at anvende miljøvariablerne. - 4
Bekræft udgangs-IP'en indefra containeren
Kør
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipfor at bekræfte, at containeren udgår via din proxy-IP.
Ofte stillede spørgsmål
Hvorfor kan min container ikke få forbindelse til min Redis- eller Postgres-container efter opsætning af HTTP_PROXY?
Uden NO_PROXY forsøger din HTTP-klient at nå interne tjenestenavne som redis eller db via den eksterne proxy. Tilføj NO_PROXY=localhost,127.0.0.1,redis,db (og med små bogstaver no_proxy) for at omgå proxyen for interne bridge-værter.
Kan jeg tildele 20 forskellige proxyer til 20 containere på én VPS?
Ja. Definer hver containertjeneste (eller overfør separate .env-variabler) med dens egen http://user:pass@ip:port-streng.
Hvorfor skal der angives proxyvariabler med både store og små bogstaver?
Visse Linux-biblioteker (som libcurl) tjekker først http_proxy / https_proxy med små bogstaver, mens værktøjer i Go og Node ofte tjekker HTTP_PROXY / HTTPS_PROXY med store bogstaver.
Tildel dedikerede statiske IP'er til hver Docker-container
Øjeblikkelige ubegrænsede dedikerede IPv4- og statiske ISP-proxyer i 7 lande.
Køb Docker-proxyer