es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Redis con wsl2 podman – conexión rechazada

Estoy ejecutando Ubuntu 20.04 dentro de WSL2 en Windows 10.

Instalé podman.

> podman -v
podman versión 3.

Intenté iniciar un contenedor con

podman run --name some-redis -d -p 6379:6379 redis

El contenedor se está iniciando. No hay errores en el registro.

Si intento

redis-cli

Desde Ubuntu, está funcionando.

Desde el símbolo del sistema/PowerShell no está funcionando.

rdcli -h localhost
localhost:6379> (error) No se pudo realizar la conexión a Redis en localhost:6379 - conectar ECONNREFUSED 127.0.0.1:6379

Y tampoco está funcionando con mi aplicación SpringBoot.

También estoy utilizando un contenedor de Portainer con mapeo de puertos 9000:9000 y puedo acceder a él desde Ubuntu, el símbolo del sistema y PowerShell.

Entonces, ¿cuál es el problema con Redis? ¿Viene de Redis o de WSL2/podman?

¿Qué puedo hacer?

PD: El mismo contenedor en la misma máquina con Docker Desktop funcionaba bien.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Redis, WSL-2 y Podman, el problema podría estar relacionado con la configuración predeterminada de la red de WSL2. Por defecto, WSL2 utiliza su propia dirección IP, al igual que Windows. Esto significa que la dirección IP de la interfaz de red del contenedor no es visible para Windows, por eso estás obteniendo el error de “conexión rechazada”.

    Para solucionar este problema, debes configurar WSL2 para que utilice la misma dirección IP que Windows. Sigue los siguientes pasos:

    1. Abre PowerShell como administrador y ejecuta el siguiente comando para obtener la dirección IP del host de Windows:

      ipconfig

    2. Busca la “Dirección IPv4” en “Adaptador Ethernet vEthernet (WSL)” y anota la dirección IP.

    3. Abre la terminal de WSL2 y edita el archivo /etc/resolv.conf ejecutando el siguiente comando:

      sudo nano /etc/resolv.conf

    4. Añade la siguiente línea al final del archivo:

      nameserver <dirección ip="" de="" windows="">

      Reemplaza <dirección ip="" de="" windows=""> con la dirección IP que anotaste en el paso 2.

    5. Presiona Ctrl+O para guardar el archivo y Ctrl+X para salir del editor.

    6. Reinicia el servicio de red ejecutando el siguiente comando:

      sudo service networking restart

      Ahora, intenta ejecutar el comando redis-cli nuevamente desde PowerShell y debería funcionar.

    Si la solución anterior no funciona, entonces el problema podría estar relacionado con la configuración de Podman. Intenta ejecutar el mismo comando con la opción --network host:

    podman run --name some-redis -d --network host redis

    Esto hará que el contenedor utilice la red del host en lugar de un espacio de nombres de red separado. Ahora intenta ejecutar el comando redis-cli desde PowerShell nuevamente.

    En caso de que ninguna de estas soluciones funcione, el problema podría estar relacionado con la imagen del contenedor de Redis. Intenta volver a descargar la imagen de Redis o utiliza una versión diferente.

    Por último, ten en cuenta que puede haber algunas diferencias en la forma en que WSL2, Podman y Redis funcionan en comparación con Docker Desktop. Por lo tanto, siempre es recomendable probar tus cargas de trabajo en diferentes entornos para garantizar la compatibilidad.</dirección></dirección>

Comments are closed.