User Tools

Site Tools


visualizar_sockets_en_entornos_docker

This is an old revision of the document!


Listar los sockets / conexiones usadas en entornos Docker

El funcionamiento de docker se basa en el uso de espacios de nombres y reglas de firewall. Con los comandos nsenter y contrack es por tanto factible encontrar las conexiones que un host con docker ha establecido, ya sean internas o externas.

nsenter

Este comando recorre todos los namespace de los contenedores para buscar, en este caso mediante “netstat -putan” sus sockets. Por supuesto podría usarse cualquier otro comando para obtener información sobre el proceso, por ejemplo lsof y averiguar qué ficheros tiene abiertos.

 # Analiza todos los contenedores del host
for i in `docker ps -q` ; do sudo nsenter -t $(docker inspect -f '{{.State.Pid}}' $i) -n netstat -putan ; done 
# Analiza un solo contenedor: Se puede usar el ID o el nombre,
docker inspect -f '{{.State.Pid}}' XXXX

conntrack

Si se quiere obtener todavía más información o información no mostrada por el método anterior, se puede hacer uso de conntrack-tools para consultar a iptables. Dependiendo de la versión de Docker y como se configure el entorno, no todas las conexiones que se listen en los conenedores serán todas las existentes. Esto se debe a que se delegan ciertas tareas a iptables, que a su vez implementa NAT/SNAT.

conntrack -L     # Muestra las conexiones del firewall
 
# Algunos filtros útiles:
conntrack -L --any-nat # Muestra cualquier asociación NAT
conntrack -L --src-nat # Asociaciones de conexiones salientes desde los contenedores hacia el exterior usando MASQUERADE.
conntrack -L --dst-nat # Asociaciones de conexiones entrantes desde el exterior a los contenedores que se están editando con DNAT.
# Si se quiere ver en modo evento simplemente usar -E en vez de -L. El fichero /proc/net/nf_conntrack puede mostrar la misma información, pero el nombre puede varias dependiendo de la distro usada.
visualizar_sockets_en_entornos_docker.1697750039.txt.gz · Last modified: 2023/10/19 23:13 by busindre