So richten Sie einen Proxy in Docker ein (Container, Compose & Builds)
Aktualisiert:
Beim Ausführen von Multi-Container-Scrapern, Automatisierungs-Workern oder DePIN-Nodes auf einem einzigen Host-Server ermöglicht die Übergabe der Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY pro Container, dass jeder Dienst über eine eigene dedizierte statische IPv4-Adresse von VinaProxy ins Internet routet, ohne die Routing-Tabelle des Host-Systems zu verändern.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40.000 ₫
- 5+ IPs35.000 ₫
- 10+ IPs25.000 ₫
- 20+ IPs25.000 ₫
- 50+ IPs25.000 ₫
- 100+ IPs25.000 ₫
- 200+ IPs25.000 ₫
- 500+ IPs25.000 ₫
- 1000+ IPs22.000 ₫
- 2000+ IPs20.000 ₫
- 1 IP40.000 ₫
- 5+ IPs35.000 ₫
- 10+ IPs25.000 ₫
- 20+ IPs25.000 ₫
- 50+ IPs25.000 ₫
- 100+ IPs25.000 ₫
- 200+ IPs25.000 ₫
- 500+ IPs25.000 ₫
- 1000+ IPs22.000 ₫
- 2000+ IPs20.000 ₫
Die 3 Docker-Proxy-Konfigurationsebenen verstehen
Docker trennt den Datenverkehr zur Container-Laufzeit, beim Image-Build und bei Daemon-Registry-Pulls strikt voneinander:
| Docker-Bereich | Wo konfigurieren | Was weitergeleitet wird |
|---|---|---|
| 1. Container-Laufzeit (Runtime) | docker run -e HTTP_PROXY=... oder Compose environment: | Der gesamte Netzwerkverkehr, der von der App in diesem Container erzeugt wird |
2. Image-Build (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Downloads von Paketmanagern (apt, pip, npm) während des Builds |
3. Docker-Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull- und docker push-Anfragen an Registrys |
Docker Compose Best Practices & NO_PROXY-Regeln
- Setzen Sie Variablen sowohl in Groß- (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) als auch in Kleinschreibung (http_proxy,https_proxy,no_proxy), damit alle Linux-CLI-Tools und Sprach-Runtimes sie erfassen - Listen Sie interne Docker Compose-Servicenamen immer auf (z. B.
NO_PROXY=localhost,127.0.0.1,redis,postgres), damit der containerübergreifende Datenverkehr im lokalen Bridge-Netzwerk verbleibt - Schreiben Sie Proxy-Passwörter niemals mit
ENVfest in ein öffentlichesDockerfile—übergeben Sie diese zur Laufzeit via.envoderdocker-compose.yml
Schritt für Schritt
- 1
Formatieren Sie Ihren Proxy als http://user:pass@ip:port
Konvertieren Sie Ihre VinaProxy-Zeile
ip:port:user:passmit unserem Proxy-Format-Konverter. - 2
Umgebungsvariablen zu docker-compose.yml hinzufügen
Definieren Sie unter
environment:Ihres DienstesHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyundNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Container starten oder neu erstellen
Führen Sie
docker compose up -daus, um die neuen Umgebungsvariablen anzuwenden. - 4
Ausgangs-IP im Container überprüfen
Führen Sie
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipaus, um zu bestätigen, dass der Container über die Proxy-IP routet.
Häufig gestellte Fragen
Warum kann mein Container nach dem Setzen von HTTP_PROXY keine Verbindung zu Redis oder Postgres herstellen?
Ohne NO_PROXY versucht Ihr HTTP-Client, interne Servicenamen wie redis oder db über den externen Proxy zu erreichen. Fügen Sie NO_PROXY=localhost,127.0.0.1,redis,db (und kleingeschriebenes no_proxy) hinzu, um interne Bridge-Hosts zu umgehen.
Kann ich 20 verschiedenen Containern auf einem VPS 20 verschiedene Proxys zuweisen?
Ja. Definieren Sie jeden Container-Dienst (oder übergeben Sie unterschiedliche .env-Variablen) mit einem eigenen http://user:pass@ip:port-String.
Warum müssen Proxy-Variablen sowohl groß als auch klein definiert werden?
Einige Linux-Bibliotheken (wie libcurl) prüfen zuerst kleingeschriebene http_proxy / https_proxy, während Go- und Node-Tools typischerweise die großgeschriebenen Variablen HTTP_PROXY / HTTPS_PROXY auslesen.
Weisen Sie jedem Docker-Container dedizierte statische IPs zu
Dedizierte IPv4- und statische ISP-Proxys mit unbegrenztem Datenverkehr in 7 Ländern.
Docker-Proxys kaufen