У меня есть контейнер докеров, работающий на RHEL 7 с Docker 1.7.0. Программа, работающая в этом контейнере, прослушивает TCP-соединения на порту 5000. В моем Dockerfile я помещаю предложение EXPOSE 5000, и я запускаю контейнер со следующей командой:
docker run \
--name myProgram \
--detach \
--publish 5000:5000 \
--volume /home/docker/apps/myProgram/logs:/var/log/myProgram/ \
--volume /home/docker/apps/myProgram/conf:/usr/local/snnotificationreceiver/conf/ \
--restart always \
10.167.152.15:5000/myProgram:1.0.0
Когда я выполняю netstat на хосте, я вижу сокет LISTEN:
[[email protected] bin]# netstat -naop | grep 5000
tcp6 0 0 :::5000 :::* LISTEN 33595/docker-proxy off (0.00/0/0)
Я могу подключиться к приложению, подключившись к IP-адресу хоста на порту 5000, и данные, которые я отправляю приложению, приходят. Я знаю это, потому что я вижу это в своих журналах приложений, приложение также отправляет данные через сокет. Однако я не вижу никаких подключений ESTABLISHED, использующих netstat на хосте docker:
[[email protected] bin]# netstat -naop | grep ESTABLISHED
Я вижу соединение ESTABLISHED на стороне клиента, которое не использует докер:
[[email protected] ~]# netstat -naop | grep 5000
tcp 0 0 10.167.43.73:39218 10.167.152.138:5000 ESTABLISHED 21429/telnet off (0.00/0/0)
Я не нашел никакой команды докеров, эквивалентной или аналогичной netstat Это нормально? Как я могу увидеть соединения ESTABLISHED с контейнером или докером-прокси?
Спасибо