Docker kapsayıcılarimin proxy'imi kullanmasına nasıl izin verebilirim?


18

Kurumsal vekilin arkasında olan Debian Jessie üzerinde liman işçisi çalıştırıyorum. Liman işçisi görüntülerini indirebilmek için aşağıdakileri cihazıma eklemem gerekiyor/etc/defaults/docker

http_proxy="http://localhost:3128/"

Bunun işe yaradığını doğrulayabilirim.

Ancak, interwebz'e kapımdan erişebilmek için, tüm oturumları başlatmalı --net hostve sonra bu env değişkenlerini ayarlamam gerekiyor:

export http_proxy=http://localhost:3128/
export https_proxy=https://localhost:3128/
export ftp_proxy=${http_proxy}

İdeal olarak, konteynerin ana bilgisayar ağına ihtiyaç duymaması ve proxy hakkında bilgi sahibi olmamasını istiyorum (yani kaptaki 20, 80, 443 numaralı bağlantı noktasına giden tüm çağrılar ana bilgisayarın proxy bağlantı noktası üzerinden geçer). Mümkün mü?

Başarısız olursa, bu env değişkenlerinin yerel olarak ayarlanmasını ancak hiçbir zaman görüntünün bir parçası olarak dışa aktarılmasını sağlayacak bir site kurulumuna sahip olmak mümkün müdür?

GÜNCELLEME : Bu şeyleri --env http_proxy=...vs ile geçirebileceğimi biliyorum , ama bu çok zor. Takma ad kullanmadan sistemdeki tüm kullanıcılar için çalışmasını istiyorum.

Yanıtlar:


5

Bu SO cevabına bakın :

Ana sunucu şeffaf bir proxy oluşturabilen bir proxy (bu durumda kalamar) çalıştıran bir kapsayıcı çalıştırır. Bu kapsayıcı, proxy sunucusuna NAT trafiği yükleyen bazı iptables kurallarına sahiptir - bu, kapsayıcı ayrıcalıklı modda çalışması gerektiği anlamına gelir.

Ana makine sunucusu ayrıca, herhangi bir kapsayıcıdan gelen tüm trafiği, proxy kapsayıcısı aracılığıyla 80 numaralı bağlantı noktası için hedeflenen proxy'yi yeniden yönlendiren (ve işte sihirli) ip yol tablosu girdilerini de içerir.

Bu son bit, aslında 80 numaralı bağlantı noktası için, konteynırdan dünyanın geri kalanına olan rotanın proxy konteynerinden geçtiği anlamına gelir - bu da NAT ve şeffaf proxy'ye şans verir.

https://github.com/silarsis/docker-proxy


Bu "https" için çalışmaz.
ceving
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.