Mam kontener dokera działający na RHEL 7 z Dockerem 1.7.0. Program, który działa w tym kontenerze nasłuchuje połączeń TCP na porcie 5000. w moim Dockerfile kładę zdanie EXPOSE 5000 i biegnę pojemnik z następującego polecenia:Podczas korzystania z Docker, połączenia ESTABLISHED nie pojawiają się w netstat
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
Kiedy wykonać netstat na gospodarza I zobacz gniazdo LISTEN:
[[email protected] bin]# netstat -naop | grep 5000
tcp6 0 0 :::5000 :::* LISTEN 33595/docker-proxy off (0.00/0/0)
mogę połączyć się z aplikacją poprzez podłączenie do adresu iP hosta na porcie 5000 i wysyłam dane do aplikacji przybywa. Wiem o tym, ponieważ widzę to na moich logach aplikacji, aplikacja wysyła również dane przez gniazdo. Jednak nie widzę żadnych ustanowionych połączeń za pomocą netstat na hoście Döcker:
[[email protected] bin]# netstat -naop | grep ESTABLISHED
widzę ustalonego połączenia po stronie klienta, który nie korzysta z docker:
[[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)
ja nie znajdź dowolny ekwiwalent polecenia dokowania lub podobny do netstat Czy to normalne? Jak wyświetlić połączenia ESTABLISHED do kontenera lub do proxy-dokowania?
Dzięki
Właściwie to działa, ale polecenie powinno wyglądać jak 'sudo nsenter -t -n netstat | grep ESTABLISHED'. Zwróć uwagę na opcję '-n'. Więcej informacji można znaleźć tutaj http://stackoverflow.com/a/40352004/1201488. –
Tak, przepraszam za to. -n jest wymagane, aby nsenter działał tutaj. – AdvilUser
Dla mnie to pokazuje połączenia jako pochodzące z localhost, nie ma pojęcia o źródłowym adresie połączenia. Ktoś wie, jak to zobaczyć? – jjmontes