在Docker Container中运行多个httpd进程

时间:2017-08-22 04:36:05

标签: linux apache amazon-web-services docker

这是我为在Dockerfile上安装httpd而创建的centos

#Installing HTTPD
FROM centos:latest
MAINTAINER xxx@gmail.com
RUN yum install -y httpd
EXPOSE 80
#ENTRYPOINT ["systemctl"]
ENTRYPOINT ["/usr/sbin/httpd"]

构建之后,当我运行容器时,我可以看到在此容器中运行的httpd进程太多了:

docker run -d -p 80:80 httpd:4.0 -DFOREGROUND

Docker top命令的输出:

UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2457                2443                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2474                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2475                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2476                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2477                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2478                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2491                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2492                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
apache              2493                2457                0                   04:26               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND
root                2512                2500                0                   04:27               pts/0               00:00:00            /bin/bash
apache              2532                2457                0                   04:27               ?                   00:00:00            /usr/sbin/httpd -DFOREGROUND

请让我知道为什么这么多httpd进程在运行,以及如何只有一个进程有PID 1?

1 个答案:

答案 0 :(得分:2)

Apache运行多个进程以准备快速赶上客户端请求,因为生成服务器进程很慢,所以最好在请求进入时准备就绪。
您可以在httpd.confStartServersMinSpareServersMaxSpareServersServerLimit指令中配置其号码。