Docker 이미지에서 httpd 서비스를 시작할 수 없습니다

Docker 이미지에서 httpd 서비스를 시작할 수 없습니다

centos 머신을 시작하고 httpd를 설치해야 하는 다음 Dockerfile이 있습니다.

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

CMD ["/bin/bash"]

이미지를 빌드합니다.

docker build --no-cache -t centos_http .

빌드 내용은 다음과 같습니다.

...
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

하지만 이미지를 실행하면:

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

httpd가 실행되고 있지 않습니다! 이미지 내에서 /etc/init.d/httpd start를 수동으로 실행하면 정상적으로 작동합니다.

답변1

당신은 완전히 잘못하고 있습니다. RUN명령은 빌드 중에만 실행됩니다. 다음과 같은 것을 사용해야합니다

FROM centos:6.6

RUN yum install -y httpd

EXPOSE 80

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

또한 당신은 살펴볼 수 있습니다공식 아파치 Dockerfile

관련 정보