Tomcat nicht läuft, auf docker-image
Ich installiert tomcat7 auf dem Bild mit Dockerfile durch den Befehl :
MAINTAINER Abc Xyz <[email protected]>
RUN apt-get -qq update
RUN apt-get -y install openjdk-7-jre
RUN apt-get -y install tomcat7
EXPOSE 8080
Wenn ich Baue das Bild und versuchen, führen Sie den folgenden Befehl ein :
sudo docker run -d -P abcxyz/tomcat service tomcat7 start
Habe ich nicht bekommen, um zu sehen, die tomcat-Seite, auf der port, an dem es zugeordnet ist (z.B. 49153)...
Und wenn ich als bash im Bild und ich versuchen :
service tomcat7 start
Es dann auch nicht starten, die tomcat7 server.
Ich denke, dass das problem ist, dass Bild ist nicht in der Lage zu starten die tomcat7 server. Und ich habe gehört, dass docker-images können nicht laufen alle upstart-Dienste, obwohl ich nicht sicher bin.
Jemand hat eine Idee wie es zu lösen?
Danke.
- Ich fand die Antwort hier...stackoverflow.com/questions/24265354/..., Aber immer noch kann mir jemand sagen, warum es nicht geschieht, die Art, wie ich es wollte?
- Ist das die ganze Dockerfile? Wie es aussieht, fehlt
FROM
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert es nicht, weil der container funktioniert so lange, wie das Programm, das Sie angegeben ist, ausgeführt. Die
service tomcat7 start
- Befehl beendet sofort.tail -f
monitor wird die Datei für die änderungen und drucken Sie Sie sobald Sie verfügbar sind. Es gibt viele andere option als gut. Wiewhile true; do sleep 1d; done
.ändern Sie den Befehl zu
und dadurch wird tomcat laufen in der forground
Nur hinzufügen:
parameter mit docker run-Befehl. Tomcat benötigen erweiterte Privilegien zu laufen.
Mehr Informationen gibt es: https://docs.docker.com/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration
Sie sollten es ausführen, etwa so:
Dadurch wird der container ausgeführt, solange der Befehl ausgeführt wird. Die Art und Weise Sie ausgeführt wurden, obwohl, ist, dass der service als hintergrund-Prozess.
verwenden Sie das Andockfenster ' run mit dem -d-Schalter zu laufen, in trennen-Modus. So wird es im hintergrund laufen.
zB:
docker run-d-abcd /path/catalina.sh führen Sie