Liman işçisi proxy işleminin amacı nedir? Bir kullanıcı alanı tcp proxy'si neden gerekli?


34

Yayınlanan her bağlantı noktası için çalışan docker proxy işlemi olduğunu fark ettim. Bu sürecin amacı nedir? Bunun için neden bir kullanıcı alanı tcp proxy'si gerekiyor?

$ ps -Af | grep proxy
root      4776  1987  0 01:25 ?        00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 22222 -container-ip 172.17.0.2 -container-port 22
root      4829  1987  0 01:25 ?        00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 5555 -container-ip 172.17.0.3 -container-port 5555

ve liman işçisi tarafından yaratılan bazı ilgili iptable kuralları:

$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 1 packets, 263 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT 1 packets, 263 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 1748 packets, 139K bytes)
 pkts bytes target     prot opt in     out     source               destination         
   32  7200 DOCKER     all  --  *      *       0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT 1719 packets, 132K bytes)
 pkts bytes target     prot opt in     out     source               destination         
   32  7200 MASQUERADE  all  --  *      !docker0  172.17.0.0/16        0.0.0.0/0           

Chain DOCKER (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  !docker0 *       0.0.0.0/0            127.0.0.1            tcp dpt:22222 to:172.17.0.2:22
    0     0 DNAT       tcp  --  !docker0 *       0.0.0.0/0            127.0.0.1            tcp dpt:5555 to:172.17.0.3:5555

13
Bu soruyu kapatmak için katılmıyorum. Bu serverfault.com/questions/615372'nin bir parçası olan geçerli bir mimari konudur ; biz gibi görünen oylama düşerse un (web sitesinde en az) belgelenen hizmet bölümü, daha sonra dilenir soru, sadece körü körüne biz iç anlamıyorum yeni ve parlak hizmetler yükleyerek dolaşmak gerektiğini çalışmalarını?
Avery Payne

Yanıtlar:


21

Anlaşılan daha iyi bir geçici çözüm bulunmayan bazı davalar var (şimdilik):

  • localhost <-> localhost yönlendirme
  • docker örneği, yayınlanan bağlantı noktası aracılığıyla kendisine çağrı yapıyor
  • ve muhtemelen daha fazla

https://github.com/docker/docker/issues/8356

GÜNCELLEME: 1.7.0'dan (2015-06-16) bu yana, kullanıcı proxy'si, sunucunun --userland-proxy = false flag kullanarak saç tokası NAT lehine devre dışı bırakılabilir.

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.