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

#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 票数:3 已采纳

Apache会运行多个进程以准备好快速捕获客户端请求,因为产生服务器进程很慢,因此最好在请求进入时准备好一个进程。
您可以通过StartServersMinSpareServersMaxSpareServersServerLimit指令在httpd.conf配置它们的编号。

  ask by user182944 translate from so

未解决问题?本站智能推荐:

1回复

如何在Docker容器内的httpd alpine中使用https运行localhost?

我正在尝试使用https而不是http访问localhost。 正如我所想,这并不容易,而且我对Docker还很陌生,所以如果这个问题没有任何价值,请原谅。 我已经生成了CA证书和密钥以及PEM。 添加了一些配置并消除了到目前为止的所有错误,但是我仍然遇到退出代码1的错误。 Do
1回复

Docker运行Exited 1 httpd

我已经在apache的http服务器的映像上创建了一个配置,我已经安装了最后一个映像并在dockerfile中做了一些工作: 在我做完之后: 但是如果我处于状态,我将退出= 1 我不知道为什么它不起作用,这是日志结果:
1回复

Amazon EC2中的Docker部署错误 - Docker容器意外退出

我正在尝试在Amazon EC2中部署Dockerfile和Dockerrun.aws.json。 我能够成功创建Docker容器但在此之后,实例崩溃了。 我不知道为什么 Docker容器意外退出或如何解决它。 日志: 日志中的其他信息: 我的Dockerrun.aws
4回复

如何使用非默认运行参数在AWS Elastic Beanstalk中运行Docker容器?

我有一个Docker容器,可以在我的本地开发机器上运行。 我想将其移至AWS Elastic Beanstalk ,但我遇到了一些麻烦。 我正在尝试使用s3fs将S3存储桶安装到我的容器中。 我有Dockerfile: 我通过运行run_docker.sh安装s3fs ,安装S
2回复

创建Docker容器来托管网站

我想在docker容器中运行静态网站。 为此,我创建了ubuntu EC2计算机,安装了docker并提取了centos映像。 但我收到命令无法识别的错误。 请帮助我弄清楚我在做什么错。 另外,我想运行静态网站,一旦安装成功,我将在下面的代码中放置 这是正确的做法吗
1回复

Docker容器的Dockerfile特权标志(由于Apache错误ulimit而需要)AWS

我想以特权启动一个容器。 手动输入以下代码即可直接执行此操作: 但是如何从具有特权的Dockerfile生成容器,Dockerfile中是否有任何命令可以执行此操作? 就我而言,我正在亚马逊中进行部署,以防无法从Dockerfile完成,可以从Dockerrun.aws.json
2回复

如何使我的Docker Web服务器在AWS主机中可在公共互联网中使用?

我在由AWS Redhat实例托管的centos docker容器中有一个正在运行的apache网络服务器。 我能够在AWS实例本地主机中卷曲我的容器Web服务器,但无法在我的笔记本电脑Web浏览器中公开访问。 Web服务器的详细信息: docker ps的输出: 在
1回复

在Apache或AWS上使用Docker部署React构建

我是Docker的新手,会做出反应。 我想知道如何在AWS上部署生产版本。 我已经尝试过的步骤如下: 创建一个dockerfile。 在服务器上构建并运行它。 npm run和npm run build在容器内部工作。 通过卷公开构建文件夹。 现在我
1回复

使用Apache Docker的AWS Application Load Balancer SSL终止

我正在使用AWS Application Load Balancer设置我的环境。 应用程序负载平衡器在端口443处从Internet接收请求,并将其转发到端口80。 Apache服务器在负载均衡器后面端口80的EC2服务器上与docker运行。 我的网站是使用CakePHP开发的。 当我致电h
2回复

使用Docker保留Apache错误日志

在AWS ECS上运行的容器内保留apache eror日志的最佳实践是什么? EFS真的是最好的方法吗? 如果是这样,是否甚至可以访问保存日志的EFS文件?