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.

El contenedor se negó a conectar al acceder a través del navegador web del host.

Soy nuevo en CICD y DevOps, así que solo sigo los pasos básicos pero no puedo encontrar dónde estoy cometiendo el error. He creado un contenedor, instalé apache2 en él, lo habilité y está funcionando en el contenedor y mapeé el puerto 80 del contenedor Docker al puerto 82 de mi máquina anfitriona, pero cuando intento acceder a ellos usando la dirección IP del anfitrión y el puerto 82, dice que se ha rechazado la conexión.

Mi Jenkins está conectado tanto al maestro como al esclavo. Cuando ejecuto apache2 en el esclavo, está funcionando ya que puedo ver el sitio web de apache, pero cuando hago lo mismo con la dirección IP del esclavo y el puerto 82, dice que se ha rechazado la conexión.

Comandos que estoy utilizando–

sudo docker rm -f $(sudo docker ps -a -q)

sudo docker build /home/ubuntu/workspace/Test -t test

sudo docker run -it -p 82:80 -d test

La salida que estoy obteniendo–

Ver en la siguiente imagen: https://i.stack.imgur.com/UNmCi.png

Mi archivo Docker–

Ver en la siguiente imagen: https://i.stack.imgur.com/hmm6V.png

Contenedores en ejecución–

Ver en la siguiente imagen: https://i.stack.imgur.com/0AUdH.png

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el contenedor se está ejecutando correctamente y está expuesto en el puerto 82 de su máquina host. Sin embargo, no puede acceder a la aplicación en ejecución.

    Puede haber varias razones por las que no puede acceder a la aplicación. Aquí hay algunas cosas que podría intentar:

    1. Verifique que la dirección IP de su máquina host sea correcta. Si no está seguro de qué dirección IP utilizar, puede utilizar el comando hostname -I en la terminal para obtener la dirección IP.
    2. Verifique si hay un firewall bloqueando el puerto en el que se está ejecutando el contenedor (puerto 82). Puede verificar esto ejecutando el comando sudo ufw status.

    3. Si está ejecutando el contenedor en una máquina remota, asegúrese de que su grupo de seguridad esté configurado para permitir el tráfico de entrada en el puerto 82.

    4. Verifique que Apache2 se esté ejecutando dentro del contenedor. Puede hacer esto ejecutando el comando sudo docker exec <container-id> ps aux.

    5. Intente acceder a la aplicación con la dirección IP y puerto del contenedor (usando el comando sudo docker inspect <container-id> para obtener la dirección IP del contenedor).

    Si aún no puede acceder a la aplicación, podría intentar ejecutar el contenedor en modo interactivo (docker run -it -p 82:80 test /bin/bash) y luego iniciar manualmente Apache dentro del contenedor (service apache2 start). Esto le permitirá solucionar cualquier problema con Apache2 directamente.

    Además, asegúrese de que la conexión entre el maestro y el esclavo de Jenkins sea estable y de que la dirección IP de la máquina esclava esté configurada correctamente en Jenkins también.

Comments are closed.