Desarrollé una pequeña aplicación web de demostración de Java, usando gradle, que quiero dockerizar con WildFly. He seguido las instrucciones de aquí .
El Dockerfile es:
FROM jboss/wildfly MAINTAINER Me <me@qmail.com> RUN /opt/jboss/wildfly/bin/add-user.sh admin Admin#70365 --silent ADD build/libs/my-demo.war /opt/jboss/wildfly/standalone/deployments/ Cuando inicio la imagen con Docker y navego por localhost:8080 o localhost:9990 , aparece el mensaje No se This site can't be reached .
Sin embargo, mi aplicación se ejecuta correctamente en localhost:8080 cuando uso gradle appRun .
¿Lo que falta?
Estoy bajo Windows 10 Home Edition. Lo probé en otra computadora portátil con Ubuntu 16 y enfrenté el mismo problema.
Tres cosas:
Primero , la imagen base EXPOSE es el único puerto 8080, por lo que para poder acceder al puerto 9990 , debe agregar EXPOSE 9990 a su Dockerfile o --expose 9990 a su llamada de docker run .
Segundo , no publicó su llamada de línea cmd, por lo que solo puedo adivinar, pero necesita asignar el puerto del contenedor a un puerto de host, por ejemplo (incluido el puerto expuesto adicional)
docker run --expose 9990 -p 9990:9990 -p 8080:8080 -it my-demo3. Si está trabajando con docker-machine como sigue siendo el caso con Win 10 home, por lo que recuerdo, no tendrá su aplicación en localhost sino en la IP de la VM de docker-machine. Puedes saber que IP es llamando
docker-machine ipEn Linux, tendrá su aplicación en localhost:PORT una vez que agregue la asignación de puertos.