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.

No se puede acceder al contenedor de Docker en localhost.

Tengo una aplicación frontal que utiliza Angular-cli y estoy intentando comprobar si funciona correctamente separadamente antes de integrarla en el contenedor principal, pero parece que no puedo acceder a localhost.
Estoy utilizando un macOS Catalina 10.15.7 con Docker Desktop.

Y no es el mismo problema que otros porque ya lo probé antes de preguntar mi pregunta en stackoverflow, así que no lo pongas como duplicado, ¡GRACIAS!

Mi Dockerfile está construido así:

FROM node:14-alpine3.12

WORKDIR /app/front

#COPY ./angular-cli .
COPY package.json package-lock.json
COPY . . 

RUN npm install 
RUN npm install -g @angular/cli

EXPOSE 4200

# Install Angular, if it fails then run CMD ["ng", "serve"]
CMD ["ng", "serve"]

Cuando ejecuto la aplicación con el comando:

docker run -d -p 80:4200 reponame

Mi construcción funciona perfectamente y me muestra esto:

** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
Compiled successfully.

Y cuando voy a Localhost:4200 muestra que la página no es accesible.
También intenté conectarme con la dirección IP usando estos comandos pero sucede lo mismo.

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' imagename

También intenté cambiar diferentes puertos porque leí que en Mac el puerto 80 podría estar roto, así que intenté:

docker run -d -p 4200:4200 nombre de la aplicación
docker run -d -p 8080:4200 nombre de la aplicación

Si alguien puede ayudarme, estaría muy agradecido.
¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que tienes problemas para acceder a la aplicación Angular que se ejecuta en tu contenedor Docker en tu máquina local. Según tu Dockerfile y el comando que estás usando para ejecutar el contenedor, todo debería estar configurado correctamente.

    Una cosa que debes verificar es si el contenedor está realmente ejecutándose y escuchando en el puerto esperado. Puedes usar el comando docker ps para verificar el estado de tu contenedor, y el comando docker logs para ver cualquier salida del contenedor.

    Si el contenedor está ejecutándose y no hay errores obvios, es posible que el firewall o la configuración de red de tu máquina local estén bloqueando el acceso al puerto del contenedor. Es posible que debas verificar la configuración del firewall o consultar con tu administrador de red para asegurarte de que el tráfico pueda llegar al contenedor en el puerto especificado.

    Alternativamente, podrías intentar ejecutar el contenedor en modo de red de “host” (--network host), lo que hará que las interfaces de red del contenedor estén directamente disponibles en la red de tu máquina local. Esto a veces puede ayudar con problemas de conectividad de red, aunque puede que no sea apropiado para todos los casos de uso.

    Con suerte, con un poco de investigación y solución de problemas, podrás ejecutar tu aplicación Angular en un contenedor Docker y acceder a ella desde tu máquina local. ¡Buena suerte!

Comments are closed.