Docker'da Proxy Nasıl Kurulur (Container'lar, Compose ve Build'ler)
Updated:
Tek bir ana sunucuda çoklu container barındıran kazıyıcılar, otomasyon çalışanları veya DePIN düğümleri çalıştırırken, container başına HTTP_PROXY ve HTTPS_PROXY ortam değişkenlerini tanımlamak, ana makinenin yönlendirme tablosunu değiştirmeden her servisin VinaProxy tarafından sağlanan kendi özel statik IPv4 adresi üzerinden çıkış yapmasını sağlar.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
3 Docker proxy yapılandırma kapsamını anlama
Docker; container çalışma zamanı trafiğini, imaj derleme trafiğini ve daemon kayıt defteri çekme işlemlerini birbirinden ayırır:
| Docker Kapsamı | Nerede Yapılandırılır | Neleri Yönlendirir |
|---|---|---|
| 1. Container Çalışma Zamanı | docker run -e HTTP_PROXY=... veya Compose environment: | O container içindeki uygulamanın ürettiği trafik |
2. İmaj Derleme (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Derleme sırasındaki paket yöneticisi indirmeleri (apt, pip, npm) |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Kayıt defterlerine yönelik docker pull ve docker push istekleri |
Docker Compose en iyi uygulamaları ve NO_PROXY kuralları
- Tüm Linux CLI araçlarının ve programlama dili çalışma zamanlarının algılayabilmesi için değişkenleri hem büyük harfli (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) hem de küçük harfli (http_proxy,https_proxy,no_proxy) olarak tanımlayın - Container'lar arası trafiğin yerel bridge ağında kalması için dahili Docker Compose servis adlarını her zaman listeleyin (ör.
NO_PROXY=localhost,127.0.0.1,redis,postgres) - Proxy şifrelerini asla
DockerfileiçindeENVkullanarak herkese açık imajlara gömmeyin; bunları çalışma zamanında.envveyadocker-compose.ymlüzerinden aktarın
Adım adım
- 1
Proxy'nizi http://user:pass@ip:port olarak biçimlendirin
VinaProxy
ip:port:user:passsatırınızı Proxy Format Converter aracımızı kullanarak dönüştürün. - 2
Ortam değişkenlerini docker-compose.yml dosyasına ekleyin
Servisinizin
environment:bölümü altınaHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyveNO_PROXY=localhost,127.0.0.1,redis,dbdeğişkenlerini tanımlayın. - 3
Container'ı başlatın veya yeniden oluşturun
Ortam değişkenlerini uygulamak için
docker compose up -dkomutunu çalıştırın. - 4
Container içinden çıkış IP'sini doğrulayın
Container'ın proxy IP'niz üzerinden çıkış yaptığını onaylamak için
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipkomutunu çalıştırın.
Sıkça sorulan sorular
HTTP_PROXY ayarladıktan sonra container'ım neden Redis veya Postgres container'ıma erişemiyor?
NO_PROXY olmadan HTTP istemciniz redis veya db gibi dahili servis adlarına harici proxy üzerinden erişmeye çalışır. Dahili bridge sunucularında proxy'yi atlamak için NO_PROXY=localhost,127.0.0.1,redis,db (ve küçük harfli no_proxy) ekleyin.
Tek bir VPS üzerindeki 20 container'a 20 farklı proxy atayabilir miyim?
Evet. Her container servisini kendi http://user:pass@ip:port dizesiyle tanımlayın (veya ayrı .env değişkenleri iletin).
Neden hem büyük hem de küçük harfli proxy değişkenleri ayarlanmalı?
Bazı Linux kütüphaneleri (örneğin libcurl) önce küçük harfli http_proxy / https_proxy değişkenlerini kontrol ederken, Go ve Node araçları genellikle büyük harfli HTTP_PROXY / HTTPS_PROXY değişkenlerini kontrol eder.
Her Docker container'ına özel statik IP atayın
7 ülkede anında kotasız Dedicated IPv4 ve Statik ISP proxyler.
Docker Proxy Satın Al