SISTEMAS

¿Cómo verificar las conexiones de red establecidas en Docker?

Vea y administre las conexiones de red establecidas por los contenedores de Docker.

A menudo, cuando se trabaja con contenedores Docker, necesitamos ver las conexiones de red utilizadas por el contenedor para la depuración inicial o la resolución de problemas. Es posible que desee ver qué IP está escuchando en el puerto o cuántas conexiones están actualmente activas en el contenedor.

Dado que Docker es un entorno aislado, ejecutar netstat en el servidor no le brindará conectividad de red para el contenedor. En su lugar, debe ingresar al contenedor para ejecutar netstat o ejecutarlo de forma remota.

Veamos estas dos opciones…

#1. en el contenedor Docker para ejecutar netstat

Como primer paso, busque el ID de contenedor del contenedor que desea solucionar.

$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                NAMES
0ce7cfb9be37   nginx     "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp   web-server
4ab8551671d7   nginx     "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   80/tcp               vigilant_ganguly
$

Aquí quiero comprobar el contenedor con ID 0ce7cfb9be37Ahora, para obtener una sesión de shell (bash) para este contenedor, use:

$ docker exec -it 0ce7cfb9be37 bash

Esto debería llevarlo al indicador de bash dentro del contenedor.

[email protected]:/#

puedes instalar netstat paquete para encontrar conexiones de red establecidas. Es posible que estas utilidades no estén disponibles dentro del contenedor de forma predeterminada.

Entonces, para instalarlo, use:

apt update
apt install net-tools

Now, we can use the netstat command as usual.

# netstat -an

producción:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 172.17.0.3:80           223.233.99.46:64429     FIN_WAIT2
tcp        0      0 172.17.0.3:80           223.233.99.46:4811      ESTABLISHED
tcp        0      0 172.17.0.3:80           223.233.99.46:64430     FIN_WAIT2
tcp        0      0 172.17.0.3:80           223.233.99.46:4810      ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  3      [ ]         STREAM     CONNECTED     35748
unix  3      [ ]         STREAM     CONNECTED     35749

Como puede ver en el resultado anterior, las conexiones establecidas se enumeran junto con sus direcciones de origen y destino. Para ver qué procesos están escuchando en un puerto, puede usar:

# netstat -tulnp

producción:

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:80              0.0.0.0:*               LISTEN      1/nginx: master pro
tcp6       0      0 :::80                   :::*                    LISTEN      1/nginx: master pro

#2. Ejecute netstat sin ingresar al contenedor

Primero, necesitamos obtener la identificación del contenedor docker ps Pedido.

[[email protected] ~]# docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED      STATUS      PORTS                    NAMES
e5db9a01d4a8   postgres:13.1-alpine       "docker-entrypoint.s…"   9 days ago   Up 9 days   0.0.0.0:5432->5432/tcp   relicflare_server_postgres
[[email protected] ~]#

Luego, ejecute el comando docker como se muestra a continuación para averiguar todas las conexiones establecidas para el contenedor.

docker exec e5db9a01d4a8 netstat |grep ESTABLISHED 

Esto dará como resultado algo como lo siguiente.

[[email protected] ~]# docker exec e5db9a01d4a8 netstat | grep ESTABLISHED
tcp        0      0 e5db9a01d4a8:postgresql 161.35.XXX.XXX:49128    ESTABLISHED 
udp        0      0 localhost:48818         localhost:48818         ESTABLISHED 
[[email protected] ~]# 

Así que la idea es ejecutar el comando netstat junto con docker exec Pedido.

en conclusión

Ahora que tiene los detalles de conexión requeridos, puede continuar con la solución de problemas mirando más en la ventana acoplable y los registros de procesos.

Artículo Recomendado:  Los 7 mejores DAC/AMP portátiles para potenciar el audio

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *