Der httpd-Dienst kann im Docker-Image nicht gestartet werden

Der httpd-Dienst kann im Docker-Image nicht gestartet werden

Ich habe die folgende Docker-Datei, die eine CentOS-Maschine starten und httpd installieren sollte:

FROM centos:centos6.6
RUN yum install -y httpd
RUN chkconfig httpd on; 
RUN /etc/init.d/httpd start
EXPOSE 80

CMD ["/bin/bash"]

Ich erstelle das Image:

docker build --no-cache -t centos_http .

Der Build sagt:

...
Step 4/6 : RUN /etc/init.d/httpd start
---> Running in 0766e84ec292
Starting httpd: httpd: Could not reliably determine the server's fully  qualified domain name, using 172.17.0.2 for ServerName
[  OK  ]
...
Successfully built 5380a0bacdfb

Aber wenn ich das Image ausführe:

docker run  -p 8090:80 -it  5380
[root@eda7400a46a9 /]# ps -ef | grep httpd | grep -v grep
[root@eda7400a46a9 /]# 

httpd läuft nicht! Wenn ich /etc/init.d/httpd start manuell innerhalb des Images ausführe, funktioniert es einwandfrei ...

Antwort1

Sie machen das völlig falsch. RUNDer Befehl wird nur während des Builds ausgeführt. Sie sollten etwas wie das Folgende verwenden

FROM centos:6.6

RUN yum install -y httpd

EXPOSE 80

ENTRYPOINT ["/usr/sbin/httpd", "-D", "FOREGROUND"]

Sie können auch einen Blick aufoffizielles Apache Dockerfile

verwandte Informationen