2016-05-17 11 views
2

Ich versuche, einen Dienst wie Apache2 automatisch innerhalb eines Docker Behälterautomatisch innerhalb Docker Container Dienst starten

My Dockerfile: 
FROM ubuntu:14.04 

RUN apt-get update 
RUN apt-get -y install apache2 
ADD ./startup.sh /opt/startup.sh 
RUN chmod +x /opt/startup.sh 
CMD ["/bin/bash", "/opt/startup.sh"] 
RUN /opt/startup.sh 

My startup.sh: 
#!/bin/bash 
service apache2 start 

Aber Apache2 nicht gestartet wird in dem Behälter automatische zu starten.

Antwort

3

Container selbst haben keine Möglichkeit, Dienste im herkömmlichen Sinne zu starten, wie Sie es gewohnt sind, z. mit Upstart oder Systemd. So haben Sie gerade Apache manuell starten ...

FROM ubuntu:14.04 
RUN apt-get update 
RUN apt-get -y install apache2 

EXPOSE 80 443 
ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] 

Denken Sie daran, dass, wenn Sie den Container starten müssen Sie den Port korrekt mit dem -p Parameter abzubilden. Die Dockerdatei behandelt keine VOLUMES, diese installiert einfach Apache2 und startet sie. Wenn Sie verstehen müssen, wie diese funktionieren, müssen Sie die Dockerfile Reference konsultieren.

Verwandte Themen