Я заметил, что для каждого опубликованного порта выполняется процесс docker-proxy. Какова цель этого процесса? Зачем для этого нужен tcp прокси пространства пользователя?
$ 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
и некоторые связанные правила iptable, созданные docker:
$ 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
Не согласен с закрытием этого вопроса. Это допустимая архитектурная проблема, которая является следствием serverfault.com/questions/615372 ; если мы проголосуем за то, что кажется недокументированной (по крайней мере, на веб-сайте) частью службы, тогда возникает вопрос, стоит ли нам просто слепо устанавливать новые и блестящие службы, которые мы не понимаем внутренне работы?
—
Эйвери Пейн
Также на так stackoverflow.com/a/37809857/1318694
—
Мэтт