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.

Reenvío de puerto SSH desconectándose si se inicia desde un contenedor de Docker.

Estoy realizando un reenvío de puerto con SSH a una base de datos remota desde un contenedor de Docker de la siguiente manera:

ssh -o “ServerAliveInterval 15” -o -f -N -q -L 8000:localhost:8080 root@6.10.125.60

Esto funciona y puedo acceder a la base de datos normalmente. Agregué “ServerAliveInterval” para que la conexión se mantenga activa incluso cuando el cliente está inactivo. Me di cuenta de que esto no funciona desde un contenedor de Docker y la conexión se pierde después de varios minutos.

Utilicé exactamente el mismo comando localmente (no desde Docker) y funciona como se esperaba, es decir, sin pérdida de conexión.

Por lo tanto, mi solución alternativa fue realizar un reenvío de puerto localmente y luego acceder a la base de datos desde Docker con un alias de nombre de host.

Lo anterior funcionó y solucionó mi problema de pérdida de conexión. Mi pregunta es, ¿por qué sucede esto? Es decir, ¿por qué “ServerAliveInterval” parece no tener efecto cuando se ejecuta desde dentro de un contenedor de Docker?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay algunas posibles razones por las cuales ServerAliveInterval puede que no funcione cuando se ejecuta desde dentro de un contenedor Docker.

    Una posibilidad es que el contenedor Docker esté funcionando en una red o dirección IP diferente a la máquina local, lo cual puede causar problemas con la conexión SSH. Además, puede haber ciertas configuraciones o ajustes del contenedor que estén impidiendo que la conexión SSH se mantenga activa.

    Otra explicación potencial es que el contenedor Docker puede no tener los permisos o privilegios necesarios para ejecutar el comando SSH con la opción ServerAliveInterval. Es posible que el contenedor no tenga la capacidad de modificar la configuración SSH o mantener la conexión activa, lo que podría provocar que la conexión se interrumpa después de cierto tiempo.

    En última instancia, sin más información sobre la configuración específica del contenedor Docker, es difícil determinar exactamente por qué ServerAliveInterval no funciona en este caso. Sin embargo, usar un reenvío de puerto local y un alias de nombre de host puede ser una solución alternativa viable para asegurarse de que la conexión se mantenga activa y se pueda acceder a la base de datos desde dentro del contenedor.

Comments are closed.