Estoy algo desconcertado de que dentro de un contenedor Docker lsof -i
no produzca ningún resultado.
Ejemplo (todos los comandos / resultados desde el interior del contenedor):
[1] root@ec016481cf5f:/# lsof -i
[1] root@ec016481cf5f:/# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
Tenga en cuenta también cómo no se muestra ningún PID o nombre de programa netstat
. fuser
también da una salida algo confusa y tampoco puede identificar los PID.
¿Alguien puede aclarar esto?
- ¿Cómo puedo sustituir
lsof -i
(para ver también el nombre del proceso ) - ¿Por qué la producción de
netstat
lisiado también?
NB: el contenedor se ejecuta con "ExecDriver": "native-0.1"
, que es la capa de ejecución propia de Docker, no LXC.
[1] root@ec016481cf5f:/# fuser -a4n tcp 22
Cannot stat file /proc/1/fd/0: Permission denied
Cannot stat file /proc/1/fd/1: Permission denied
Cannot stat file /proc/1/fd/2: Permission denied
Cannot stat file /proc/1/fd/3: Permission denied
Cannot stat file /proc/1/fd/255: Permission denied
Cannot stat file /proc/6377/fd/0: Permission denied
Cannot stat file /proc/6377/fd/1: Permission denied
Cannot stat file /proc/6377/fd/2: Permission denied
Cannot stat file /proc/6377/fd/3: Permission denied
Cannot stat file /proc/6377/fd/4: Permission denied
22/tcp:
(No estoy obsesionado con el Permission denied
, porque eso representa cifras. Lo que me confunde es la lista vacía de PID después 22/tcp
).
# lsof|awk '$1 ~ /^sshd/ && $3 ~ /root/ {print}'
sshd 6377 root cwd unknown /proc/6377/cwd (readlink: Permission denied)
sshd 6377 root rtd unknown /proc/6377/root (readlink: Permission denied)
sshd 6377 root txt unknown /proc/6377/exe (readlink: Permission denied)
sshd 6377 root 0 unknown /proc/6377/fd/0 (readlink: Permission denied)
sshd 6377 root 1 unknown /proc/6377/fd/1 (readlink: Permission denied)
sshd 6377 root 2 unknown /proc/6377/fd/2 (readlink: Permission denied)
sshd 6377 root 3 unknown /proc/6377/fd/3 (readlink: Permission denied)
sshd 6377 root 4 unknown /proc/6377/fd/4 (readlink: Permission denied)
sshd 6442 root cwd unknown /proc/6442/cwd (readlink: Permission denied)
sshd 6442 root rtd unknown /proc/6442/root (readlink: Permission denied)
sshd 6442 root txt unknown /proc/6442/exe (readlink: Permission denied)
sshd 6442 root 0 unknown /proc/6442/fd/0 (readlink: Permission denied)
sshd 6442 root 1 unknown /proc/6442/fd/1 (readlink: Permission denied)
sshd 6442 root 2 unknown /proc/6442/fd/2 (readlink: Permission denied)
sshd 6442 root 3 unknown /proc/6442/fd/3 (readlink: Permission denied)
sshd 6442 root 4 unknown /proc/6442/fd/4 (readlink: Permission denied)
sshd 6442 root 5 unknown /proc/6442/fd/5 (readlink: Permission denied)
Hay más resultados para el usuario conectado, que también se identifica correctamente, pero eso es todo. Aparentemente es imposible discernir de qué tipo ( lsof -i
límites a los enchufes de Internet) es un cierto "objeto".
sshd
líneas (también relacionadas), algunas de las cuales podrían ser sockets TCP, como TYPE
unknown
. Peculiar. Anexando el resultado a mi pregunta.
strace -s 2000 -o lsof.log lsof -i
, es probable que le brinde información adicional sobre lo que se está bloqueando.
strace
esté limitado en el contenedor. Cosas nuevas y emocionantes para aprender. Gracias por rebotar idea. Sin embargo, debe golpear la cama.
lsof
informe? ¿Lo mismo?