Kā iestatīt proxy vidē Docker (konteineros, Compose un būvēšanā)
Updated:
Darbinot vairāku konteineru datu vācējus, automatizācijas procesus vai DePIN mezglus vienā resursdatorā, vides mainīgo HTTP_PROXY un HTTPS_PROXY nodošana katram konteineram ļauj katram servisam iziet tīklā caur savu dedicēto statisko IPv4 adresi no VinaProxy, nemainot resursdatora maršrutēšanas tabulu.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
Izpratne par 3 Docker proxy konfigurācijas tvērumiem
Docker nodala konteinera izpildlaika datplūsmu, attēlu būvēšanas datplūsmu un dēmona pieprasījumus no reģistriem:
| Docker tvērums | Kur konfigurēt | Ko tas maršrutē |
|---|---|---|
| 1. Konteinera izpildlaiks | docker run -e HTTP_PROXY=... vai Compose environment: | Datplūsma, ko ģenerē lietotne šajā konkrētajā konteinerā |
2. Attēla būvēšana (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Pakotņu pārvaldnieku lejupielādes (apt, pip, npm) būvēšanas laikā |
3. Docker dēmons (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull un docker push pieprasījumi reģistriem |
Docker Compose labākā prakse un NO_PROXY noteikumi
- Iestatiet gan lielo burtu (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY), gan mazo burtu (http_proxy,https_proxy,no_proxy) mainīgos, lai visi Linux CLI rīki un valodu izpildlaiki tos atpazītu - Vienmēr norādiet iekšējos Docker Compose servisu nosaukumus (piemēram,
NO_PROXY=localhost,127.0.0.1,redis,postgres), lai satiksme starp konteineriem paliktu vietējā tilta tīklā - Nekad neiekļaujiet proxy paroles publiskos attēlos, izmantojot
ENVfailāDockerfile—ievadiet tās izpildlaikā ar.envvaidocker-compose.yml
Soli pa solim
- 1
Formatējiet savu proxy kā http://user:pass@ip:port
Pārveidojiet savu VinaProxy
ip:port:user:passrindu, izmantojot mūsu Proxy formāta pārveidotāju. - 2
Pievienojiet vides mainīgos failā docker-compose.yml
Sava servisa sadaļā
environment:definējietHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyunNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Palaidiet vai izveidojiet konteineru no jauna
Palaidiet
docker compose up -d, lai lietotu vides mainīgos. - 4
Pārbaudiet izejas IP adresi no konteinera iekšienes
Izpildiet
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ip, lai pārliecinātos, ka konteiners iziet tīklā caur jūsu proxy IP adresi.
Biežāk uzdotie jautājumi
Kāpēc mans konteiners nevar sasniegt Redis vai Postgres konteineru pēc HTTP_PROXY iestatīšanas?
Bez NO_PROXY jūsu HTTP klients mēģina sasniegt iekšējo servisu nosaukumus, piemēram, redis vai db, caur ārējo proxy. Pievienojiet NO_PROXY=localhost,127.0.0.1,redis,db (un mazajiem burtiem no_proxy), lai apietu proxy iekšējiem tilta resursdatoriem.
Vai varu piešķirt 20 dažādus proxy 20 konteineriem vienā VPS?
Jā. Definējiet katru konteinera servisu (vai nododiet atsevišķus .env mainīgos) ar savu http://user:pass@ip:port virkni.
Kāpēc jāiestata gan lielie, gan mazie proxy mainīgie burti?
Dažas Linux bibliotēkas (piemēram, libcurl) vispirms pārbauda mazos burtus http_proxy / https_proxy, savukārt Go un Node rīki bieži pārbauda lielo burtu HTTP_PROXY / HTTPS_PROXY.
Piešķiriet dedicētas statiskās IP katram Docker konteineram
Tūlītēji neierobežoti Dedicated IPv4 un Static ISP proxy 7 valstīs.
Pirkt Docker proxy