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"]

また、こちらもご覧ください公式Apache Dockerfile

関連情報