Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
Apache Tomcat 8 no se inicia dentro de un contenedor docker

Estoy experimentando con Docker y soy muy nuevo en esto. Me llamó la atención un punto durante mucho tiempo y no estoy encontrando un camino y, por lo tanto, se me ocurrió esta pregunta aquí ...

Declaración del problema: Estoy tratando de crear una imagen desde un archivo docker que contiene la instalación de Apache y Lynx. Una vez hecho esto, intento acceder a Tomcat en 8080 del contenedor, que a su vez se reenvía al 8082 del host. Pero cuando ejecuto la imagen, nunca hago que Tomcat se inicie en el contenedor.

El archivo Docker

 FROM ubuntu:16.10 #Install Lynx Run apt-get update Run apt-get install -y lynx #Install Curl Run apt-get install -y curl #Install tools: jdk Run apt-get update Run apt-get install -y openjdk-8-jdk wget #Install apache tomcat Run groupadd tomcat Run useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat Run cd /tmp Run curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat- 8/v8.5.12/bin/apache-tomcat-8.5.12.tar.gz Run mkdir /opt/tomcat Run tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1 Run cd /opt/tomcat Run chgrp -R tomcat /opt/tomcat Run chmod -R g+r /opt/tomcat/conf Run chmod g+x /opt/tomcat/conf Run chown -R tomcat /opt/tomcat/webapps /opt/tomcat/work /opt/tomcat/temp opt/tomcat/logs Run cd /opt/tomcat/bin Expose 8080 CMD /opt/tomcat/bin/catalina.sh run && tail -f /opt/tomcat/logs/catalina.out

Cuando se creó la imagen, intenté ejecutar el contenedor con los dos métodos siguientes

  1. docker run -d -p 8082:8080 imageid tail -f /dev/null Mientras usa lo anterior, el contenedor se ejecuta pero Tomcat no se inicia dentro del contenedor y, por lo tanto, no se puede acceder a él desde localhost: 8082. Además, no veo nada si realizo registros acoplables longcontainerid

  2. docker run -d -p 8082:8080 imageid /path/to/catalina.sh start tail -f /dev/null Veo que Tomcat se inició cuando docker logs longconatainrid Mientras uso lo anterior, el contenedor se inicia y se detiene inmediatamente y no ejecutándose como puedo ver desde docker ps y, por lo tanto, nuevamente no accesible desde localhost: 8082.

¿Alguien puede decirme dónde me estoy equivocando?

PD: busqué mucho en Internet pero no pude acertar. Puede ser que haya algún concepto que no estoy entendiendo claramente.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Mirando la documentación del comando de docker run , el documento establece que cualquier comando pasado a la run anulará el CMD original en su Dockerfile :

Como operador (la persona que ejecuta un contenedor desde la imagen), puede anular esa instrucción CMD simplemente especificando un nuevo COMMAND

1/ Luego cuando corres:

 docker run -d -p 8082:8080 imageid tail -f /dev/null

El contenedor se ejecuta con COMMAND tail -f /dev/null , el comando original que inicia tomcat se anula .

Para resolver su problema, intente ejecutar:

 docker run -d -p 8082:8080 imageid

y

 docker log -f containerId

Para ver si Tomcat se inició correctamente.

2/ No debe usar el argumento de start con catalina.sh . Eche un vistazo a este Dokerfile oficial de tomcat , el equipo usa:

 CMD ["catalina.sh", "run"]

para iniciar tomcat (cuando usa start , la ventana acoplable finaliza el contenedor al final del script de shell y tomcat se iniciará pero no mantendrá un proceso en ejecución).

3/ Finalmente, ¿por qué no usa la imagen oficial de Tomcat para construir su contenedor? Podrías simplemente usar el:

 FROM tomcat:latest

directiva al comienzo de su Dockerfile, y agregue los elementos necesarios (archivos nuevos, guerra de aplicaciones web, configuraciones) a la imagen de la ventana acoplable.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda