Ich habe ein Docker-Image zum Ausführen von Apache erstellt. Ich habe es von einem Ubuntu-Basis-Image erstellt, so dass ich die Apache- und PHP-Versionen einstellen konnte, die ich wollte. Ich habe am Ende meiner Andockdatei eine CMD
hinzugefügt, um Apache im Vordergrund auszuführen.Wie habe ich mein Docker-Image ausführen Apache als Service
FROM ubuntu:16.04
RUN apt-get update && \
apt-get install -y --allow-unauthenticated software-properties-common && \
add-apt-repository ppa:ondrej/apache2 && \
apt-get update && \
....
WORKDIR/
CMD ["/usr/sbin/apachectl","-DFOREGROUND"]
Ich versuche, den Behälter mit Docker-compose (zusammen mit einigen anderen Diensten) zu laufen. Der Container wird jedoch sofort beendet. Dasselbe passiert, wenn das Bild mit dem docker
Befehl ausgeführt wird.
docker run my_image
docker ps
Interessanter wenn ich laufe es mit docker run -it my_image
, dann die Behälter beginnt, und ich bin in einer Bash-Shell genommen. (Ich glaube, das Standard-CMD auf dem Ubuntu-Basis-Image, das ich verwende, ist Bash).
Fehle ich etwas? Wie schreibe ich meine Dockerfile, so dass Apache als ein Dienst auf dem Bild ausgeführt wird?
Was 'Docker tut logs' sagen? –
johnharris85
"Ich versuche, den Container von einer Dockerfile (zusammen mit einigen anderen Diensten) auszuführen" - Ist das nicht sinnvoll? Wie meinst Du das? – johnharris85
"Interessanterweise, wenn ich es mit Docker laufen lasse -it my_image" - Weird, können Sie bitte die gesamte Dockerfile und wie Sie versuchen, es (die verschiedenen Möglichkeiten) bitte veröffentlichen? – johnharris85