Mobil Proxy Docker Kurulumu
Mobil proxy için adım adım Docker kurulum kılavuzu. Gerçek 4G/5G operatör IP’leri kullanarak arka plan hizmetleri indirme işlemlerini, çok aşamalı derlemeleri, konteyner çalışma ortamlarını ve Docker Compose’u yapılandırın.
- Katmanlar Arasındaki Net Sınır — Docker arka plan programı görüntü indirmeleri, derleme adımları veya konteyner çalışma zamanı için proxy değişkenlerini bağımsız olarak yapılandırın.
- Docker Compose orkestrasyonu — ana bilgisayar ağını etkilemeden HTTP_PROXY ve NO_PROXY ayarlarını belirli mikro hizmetlere aktarın.
- Dahili ağ bağlantısını sorunsuz bir şekilde atlayın — katı NO_PROXY kurallarıyla veritabanlarına ve localhost hizmetlerine doğrudan erişimin sağlanmasını garanti edin.
- Önbelleğe alınmış kimlik bilgilerinin sızmasını önleyin — şifrelerin görüntü katmanlarına gömülmesini önlemek için proxy kimlik bilgilerini derleme argümanları veya Docker gizli bilgileri aracılığıyla aktarın.
Docker Proxy Ortamı
Docker proxy configuration is widely misunderstood because Docker operates across three isolated networking boundaries: the Docker daemon (dockerd), the build process (docker build), and running container instances (docker run). Setting a proxy in one layer does not propagate to the others. Understanding these three distinct scopes is essential to building reliable containerized proxy pipelines.
| Kapsam Katmanı | Neyi Kontrol Eder? | Yapılandırma Konumu |
|---|---|---|
| Daemon Kapsamı | Docker Hub / kayıt defterlerinden görüntü alınması | /etc/systemd/system/docker.service.d/http-proxy.conf |
| İnşaat Kapsamı | Dockerfile’da paket yükleme (apt-get, pip, npm) | --build-arg HTTP_PROXY=... |
| Konteyner Çalışma Ortamı | Çalışan uygulamalardan gelen giden trafik | docker run -e HTTP_PROXY=... or docker-compose.yml |
Konteyner Proxy Yapılandırması
Bir konteynerden çıkan trafiği özel bir mobil proxy üzerinden yönlendirmek için, çalışma zamanında standart proxy ortam değişkenlerini belirtin. Çoğu konteyner tabanlı çalışma zamanı ortamı (Python, Go, Node.js, cURL), başlatma sırasında bu değişkenleri otomatik olarak okur.
docker run --rm \ -e HTTP_PROXY="http://user123:secret456@proxy.pxm2.io:8000" \ -e HTTPS_PROXY="http://user123:secret456@proxy.pxm2.io:8000" \ -e NO_PROXY="localhost,127.0.0.1,host.docker.internal" \ curlimages/curl:latest https://ipinfo.io/json
Alternatif olarak, Docker CLI istemcisinin yapılandırma dosyasını (~/.docker/config.json) öyle ayarlayabilirsiniz ki, -e bayraklarını tekrarlamaya gerek kalmadan proxy ayarları yeni başlatılan tüm konteynerlere otomatik olarak eklenir.
{
"proxies": {
"default": {
"httpProxy": "http://user123:secret456@proxy.pxm2.io:8000",
"httpsProxy": "http://user123:secret456@proxy.pxm2.io:8000",
"noProxy": "localhost,127.0.0.1,.internal"
}
}
}
Docker Compose Proxy Kurulumu
Çoklu konteyner yığınlarında, Docker Compose, hangi hizmetlerin mobil proxy’leri kullanacağı ve hangilerinin yerel ağlar üzerinden doğrudan iletişim kuracağı konusunda ayrıntılı kontrol sağlar. Örneğin, veri toplama işçi örnekleri özel 4G/5G modemler üzerinden yönlendirilebilirken, veritabanı ve Redis önbellek hizmetleri tamamen yerel kalabilir.
version: '3.8'
services:
scraper-worker:
image: my-scraper:latest
environment:
- HTTP_PROXY=http://user123:secret456@proxy.pxm2.io:8000
- HTTPS_PROXY=http://user123:secret456@proxy.pxm2.io:8000
- NO_PROXY=localhost,127.0.0.1,postgres,redis
depends_on:
- postgres
- redis
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: scraper_data
POSTGRES_PASSWORD: secretpassword
redis:
image: redis:7-alpine
Ağ Düzeyinde Proxy
Bazı konteyner tabanlı araçlar, ortam değişkenlerini dikkate almaz veya kodlarında proxy desteği bulunmaz. Bu tür durumlarda, ağ düzeyinde yönlendirme veya sidecar proxy modelleri, uygulama kaynak kodunda herhangi bir değişiklik yapılmasına gerek kalmadan tüm konteyner trafiğinin yeniden yönlendirilmesini sağlar.
Redsocks çalıştıran bir sidecar konteyneri veya mobil proxy sunucusuna bağlı bir WireGuard ağ geçidi başlatarak, aynı ağ ad alanını paylaşan diğer konteynerlerden gelen tüm giden TCP akışlarını yönlendirebilirsiniz.
# Service sharing the sidecar proxy network
services:
proxy-gateway:
image: custom-redsocks-gateway
cap_add:
- NET_ADMIN
environment:
- PROXY_SERVER=proxy.pxm2.io
- PROXY_PORT=1080
legacy-app:
image: my-app:latest
network_mode: "service:proxy-gateway"
Docker Proxy Sorun Giderme
Docker kapsayıcıları içinde mobil proxy'leri yapılandırırken karşılaşılan yaygın engeller ve bunların çözüm yolları:
| Sorun | Temel Neden | Düzelt |
|---|---|---|
| Veritabanı bağlantı zaman aşımı | NO_PROXY'de konteyner hizmet adları eksik. | NO_PROXY ortam değişkenine veritabanı ana bilgisayar adlarını (örn. postgres, redis) ekleyin. |
| docker build komutu 407 hatasıyla başarısız oluyor | Derleme adımlarında proxy kimlik bilgileri eksik. | Derleme sırasında --build-arg HTTP_PROXY parametresini belirtin veya BuildKit gizli bağlama özelliğini kullanın. |
| host.docker.internal adresine erişilemiyor | Yerel ana bilgisayar adının çözümlenmesi, mobil modeme yönlendirildi. | host.docker.internal öğesini NO_PROXY’ye ekleyin. |
| Docker çekme işlemi zaman aşımına uğradı | Daemon proxy yapılandırması eksik. | systemd’deki docker.service.d/http-proxy.conf dosyasında HTTP_PROXY ayarını yapın ve arka plan hizmetini yeniden yükleyin. |
Amerika Birleşik Devletleri
Birleşik Krallık
Fransa
Sık Sorulan Sorular
Daemon proxy ile container proxy arasındaki fark nedir?
Docker arka plan hizmeti proxy yapılandırması (systemd’de veya ~/.docker/config.json dosyasında), dockerd’ın Docker Hub gibi kayıt defterlerinden görüntüleri nasıl indireceğini belirler. Buna karşılık, konteyner proxy değişkenleri (HTTP_PROXY ve HTTPS_PROXY), konteyner örnekleri içinde çalışan uygulamalar tarafından üretilen giden ağ trafiğini yönetir.
Docker Compose’da bir proxy’yi nasıl yapılandırırım?
docker-compose.yml dosyasındaki service bloğu altında HTTP_PROXY, HTTPS_PROXY ve NO_PROXY değişkenlerini tanımlayın. Ayrıca, compose projesindeki tüm hizmetler için proxy ana bilgisayarı ve kimlik bilgisi ayarlarını tek bir yerde toplamak amacıyla bir .env dosyası da kullanabilirsiniz.
HTTP_PROXY ayarlandığında konteynerler neden yerel veritabanlarına bağlanamıyor?
NO_PROXY eksik veya yanlış girilmişse, localhost’a veya özel Docker köprü ağı adlarına yönelik konteyner istekleri, dahili konteyner IP adreslerini çözümleyemeyen mobil proxy sunucusuna yönlendirilir. NO_PROXY’ye her zaman 127.0.0.1, localhost ve dahili ağ alt ağlarınızı ekleyin.
Gizli bilgileri görüntü dosyasına sabitlemeden Docker derleme işlemi sırasında bir proxy'yi nasıl geçirebilirim?
Proxy ayarlarını derleme argümanları olarak aktarın: docker build --build-arg HTTP_PROXY="...". Çok aşamalı derlemeler kullanıldığında derleme argümanları görüntü katmanlarında kalıcı hale getirilmez; bu sayede proxy şifrelerinin Docker geçmişinde görünmemesi sağlanır.
Docker, tüm konteyner trafiğini bir SOCKS5 mobil proxy üzerinden yönlendirebilir mi?
Docker, arka plan programı düzeyinde sistem genelinde SOCKS5 yönlendirmesini doğal olarak desteklemez. Tüm konteyner trafiğini SOCKS5 üzerinden yönlendirmek için, redsocks veya wireguard çalıştıran bir sidecar konteyneri kullanın ya da konteynerler içindeki uygulamaları SOCKS5 ile iletişim kuracak şekilde ayrı ayrı yapılandırın.
İlgili Mobil Proxy Kılavuzları
Geliştirici ortamları, otomasyon komut dosyaları ve sunucu yapılandırmalarına ilişkin kurulum kılavuzlarını inceleyin.
Geliştirici ve Otomasyon Kılavuzları
Platform ve İşletim Sistemleri
Gerçek Mobil Donanım Üzerinde Konteyner Tabanlı İş Yüklerini Ölçeklendirme
Özel 4G/5G mobil modemleri doğrudan Docker ve Kubernetes veri toplama pod'larına entegre edin. Sınırsız bant genişliği ve güvenilir operatör puanları.
Mobil Proxy Alın