Kuinka määrittää välityspalvelin Dockerissa (kontit, Compose ja koontivaiheet)
Updated:
Kun yhdellä isäntäpalvelimella ajetaan usean kontin kaapimia, automaatioprosesseja tai DePIN-solmuja, ympäristömuuttujien HTTP_PROXY ja HTTPS_PROXY välittäminen konttikohtaisesti antaa jokaisen palvelun käyttää omaa dedikoitua staattista IPv4-osoitetta palvelusta VinaProxy muuttamatta isäntäkoneen reititystaulua.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40 000 VND
- 5+ IP:tä35 000 VND
- 10+ IP:tä25 000 VND
- 20+ IP:tä25 000 VND
- 50+ IP:tä25 000 VND
- 100+ IP:tä25 000 VND
- 200+ IP:tä25 000 VND
- 500+ IP:tä25 000 VND
- 1000+ IP:tä22 000 VND
- 2000+ IP:tä20 000 VND
- 1 IP40 000 VND
- 5+ IP:tä35 000 VND
- 10+ IP:tä25 000 VND
- 20+ IP:tä25 000 VND
- 50+ IP:tä25 000 VND
- 100+ IP:tä25 000 VND
- 200+ IP:tä25 000 VND
- 500+ IP:tä25 000 VND
- 1000+ IP:tä22 000 VND
- 2000+ IP:tä20 000 VND
Dockerin 3 välityspalvelinmäärityksen laajuuden ymmärtäminen
Docker erottaa toisistaan kontin suoritusaikaisen liikenteen, levykuvan koontiliikenteen ja taustaprosessin (daemon) rekisterinoudot:
| Docker-laajuus | Missä määritetään | Mitä se reitittää |
|---|---|---|
| 1. Kontin suoritusaika (Runtime) | docker run -e HTTP_PROXY=... tai Compose environment: | Kyseisen kontin sisällä olevan sovelluksen tuottama liikenne |
2. Levykuvan koonti (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Paketinhallinnan lataukset (apt, pip, npm) koontivaiheessa |
3. Docker-taustaprosessi (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull- ja docker push -pyynnöt rekistereihin |
Docker Composen parhaat käytännöt ja NO_PROXY-säännöt
- Aseta muuttujat sekä isoilla (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) että pienillä kirjaimilla (http_proxy,https_proxy,no_proxy), jotta kaikki Linuxin CLI-työkalut ja ohjelmointikielten ajonaikaiset ympäristöt tunnistavat ne - Määritä aina sisäisten Docker Compose -palveluiden nimet (esim.
NO_PROXY=localhost,127.0.0.1,redis,postgres), jotta konttien välinen liikenne pysyy paikallisessa siltaverkossa - Älä koskaan tallenna välityspalvelimen salasanoja julkisiin levykuviin
ENV-komennollaDockerfile-tiedostossa – syötä ne suoritusaikana.env- taidocker-compose.yml-tiedoston kautta
Vaihe vaiheelta
- 1
Muotoile välityspalvelin muotoon http://user:pass@ip:port
Muunna VinaProxy-palvelun
ip:port:user:pass-rivi käyttämällä työkaluamme Proxy Format Converter. - 2
Lisää ympäristömuuttujat docker-compose.yml-tiedostoon
Määritä palvelusi kohdan
environment:alleHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxysekäNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Käynnistä tai luo kontti uudelleen
Ota ympäristömuuttujat käyttöön suorittamalla
docker compose up -d. - 4
Varmista ulosmenevä IP-osoite kontin sisältä
Varmista suorittamalla
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ip, että kontti käyttää välityspalvelimesi IP-osoitetta.
Usein kysytyt kysymykset
Miksi konttini ei saa yhteyttä Redis- tai Postgres-konttiin HTTP_PROXY-määrityksen jälkeen?
Ilman NO_PROXY-muuttujaa HTTP-asiakasohjelmasi yrittää ottaa yhteyttä sisäisiin palvelunimiin, kuten redis tai db, ulkoisen välityspalvelimen kautta. Lisää NO_PROXY=localhost,127.0.0.1,redis,db (ja pienillä kirjaimilla no_proxy) ohittaaksesi välityspalvelimen sisäisissä siltaverkon isännissä.
Voinko määrittää 20 eri välityspalvelinta 20 kontille yhdellä VPS-palvelimella?
Kyllä. Määritä kullekin konttipalvelulle (tai välitä erilliset .env-muuttujat) oma http://user:pass@ip:port -merkkijononsa.
Miksi välityspalvelinmuuttujat kannattaa asettaa sekä isoilla että pienillä kirjaimilla?
Jotkin Linux-kirjastot (kuten libcurl) tarkistavat ensin pienillä kirjaimilla kirjoitetut muuttujat http_proxy / https_proxy, kun taas Go- ja Node-työkalut tarkistavat usein isoilla kirjaimilla kirjoitetut muuttujat HTTP_PROXY / HTTPS_PROXY.
Määritä dedikoidut staattiset IP-osoitteet jokaiseen Docker-konttiin
Heti käyttövalmiit, rajattomat dedikoidut IPv4- ja staattiset ISP-välityspalvelimet 7 maassa.
Osta Docker-välityspalvelimia