Kako nastaviti proxy v Dockerju (vsebniki, Compose in gradnja)
Updated:
Pri izvajanju strgalnikov z več vsebniki, avtomatizacijskih opravil ali DePIN vozlišč na enem gostiteljskem strežniku posredovanje okoljskih spremenljivk HTTP_PROXY in HTTPS_PROXY posameznemu vsebniku omogoča, da vsaka storitev izstopa prek svojega namenskega statičnega naslova IPv4 ponudnika VinaProxy, ne da bi pri tem spremenili usmerjevalno tabelo gostiteljskega računalnika.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40.000 ₫
- 5+ IP-jev35.000 ₫
- 10+ IP-jev25.000 ₫
- 20+ IP-jev25.000 ₫
- 50+ IP-jev25.000 ₫
- 100+ IP-jev25.000 ₫
- 200+ IP-jev25.000 ₫
- 500+ IP-jev25.000 ₫
- 1000+ IP-jev22.000 ₫
- 2000+ IP-jev20.000 ₫
- 1 IP40.000 ₫
- 5+ IP-jev35.000 ₫
- 10+ IP-jev25.000 ₫
- 20+ IP-jev25.000 ₫
- 50+ IP-jev25.000 ₫
- 100+ IP-jev25.000 ₫
- 200+ IP-jev25.000 ₫
- 500+ IP-jev25.000 ₫
- 1000+ IP-jev22.000 ₫
- 2000+ IP-jev20.000 ₫
Razumevanje 3 ravni konfiguracije proxyja v Dockerju
Docker ločuje promet izvajalnega okolja vsebnika, promet gradnje slik in vlečenje iz registrov prek demona:
| Raven Dockerja | Kje konfigurirati | Kaj usmerja |
|---|---|---|
| 1. Izvajalno okolje vsebnika | docker run -e HTTP_PROXY=... ali Compose environment: | Promet, ki ga ustvari aplikacija znotraj tega določenega vsebnika |
2. Gradnja slike (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Prenose upravitelja paketov (apt, pip, npm) med gradnjo |
3. Docker demon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Zahtevke docker pull in docker push v registre |
Najboljše prakse za Docker Compose in pravila NO_PROXY
- Nastavite tako velike (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) kot male (http_proxy,https_proxy,no_proxy) spremenljivke, da jih prepoznajo vsa orodja ukazne vrstice Linux in jezikovna izvajalna okolja - Vedno navedite imena notranjih storitev Docker Compose (npr.
NO_PROXY=localhost,127.0.0.1,redis,postgres), da promet med vsebniki ostane v lokalnem omrežju bridge - Nikoli ne zapečite gesel proxyja v javne slike z
ENVznotrajDockerfile—vnesite jih med izvajanjem prek.envalidocker-compose.yml
Navodila po korakih
- 1
Oblikujte svoj proxy kot http://user:pass@ip:port
Pretvorite svojo vrstico VinaProxy
ip:port:user:passz našim orodjem Pretvornik formata proxyja. - 2
Dodajte okoljske spremenljivke v docker-compose.yml
Pod
environment:vaše storitve določiteHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyinNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Zaženite ali znova ustvarite vsebnik
Zaženite
docker compose up -d, da uveljavite okoljske spremenljivke. - 4
Preverite izhodni IP iz notranjosti vsebnika
Izvedite
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ip, da potrdite, da vsebnik izstopa prek IP-ja vašega proxyja.
Pogosta vprašanja
Zakaj moj vsebnik po nastavitvi HTTP_PROXY ne more doseči vsebnika Redis ali Postgres?
Brez NO_PROXY poskuša vaš odjemalec HTTP doseči interna imena storitev, kot sta redis ali db, prek zunanjega proxyja. Dodajte NO_PROXY=localhost,127.0.0.1,redis,db (in z malimi črkami no_proxy), da zaobidete proxy za notranje gostitelje v omrežju bridge.
Ali lahko na enem VPS-u dodelim 20 različnih proxyjev 20 vsebnikom?
Da. Vsako storitev vsebnika določite (ali posredujte ločene spremenljivke .env) z lastnim nizom http://user:pass@ip:port.
Zakaj nastaviti tako velike kot male spremenljivke proxyja?
Nekatere knjižnice za Linux (kot je libcurl) najprej preverijo male črke http_proxy / https_proxy, medtem ko orodja Go in Node pogosto preverjajo velike črke HTTP_PROXY / HTTPS_PROXY.
Dodelite namenske statične IP-je vsakemu vsebniku Docker
Takojšnji neomejeni namenski IPv4 in statični ISP proxyji v 7 državah.
Kupite Docker proxyje