无法启动docker-httpd(pid 1)已在运行

时间:2019-08-20 07:58:58

标签: apache docker

我在办公室环境的共享服务器上托管了一个使用PHP的码头工人。以前,它工作正常,没有任何问题。所有用户都可以通过端口转发到8080来访问站点。这是我的docker文件的详细信息-

# Choose Repo from Docker Hub
FROM centos:latest

# Provide details of maintainer
MAINTAINER ritu

#Install necessary software
RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
RUN yum -y install yum-utils
RUN yum-config-manager --enable remi-php56
RUN yum -y install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-devel php-pear make gcc systemtap-sdt-devel httpd unzip postfix
RUN export PHP_DTRACE=yes
RUN curl -sS https://getcomposer.org/installer | php
RUN mv -f composer.phar /usr/local/bin/composer
RUN chmod +x /usr/local/bin/composer
RUN composer require phpmailer/phpmailer
COPY phpinfo.php /var/www/html/
COPY php.ini /var/www/
COPY httpd.conf /var/www/
RUN cp -f /var/www/httpd.conf /etc/httpd/conf/
COPY *.rpm /var/www/

#Install & Configure OCI for PHP
COPY oci8-2.0.12.tgz /
RUN tar -xvf oci8-2.0.12.tgz
RUN yum -y localinstall /var/www/*.rpm --nogpgcheck
COPY client.sh /etc/profile.d/
RUN chmod +x /etc/profile.d/client.sh
RUN cp -f /var/www/php.ini /etc/
COPY php_oci8_int.h oci8-2.0.12/
COPY Log_Check.zip /
RUN unzip Log_Check.zip
RUN cp -a -R /Log_Check/* /var/www/html/
WORKDIR /oci8-2.0.12
RUN phpize
RUN ./configure --with-oci8=/usr/lib/oracle/12.2/client64 
RUN cp -f /usr/include/oracle/12.2/client64/*.h /oci8-2.0.12/include/ 
RUN make 
RUN make install
RUN ls /var/www/html/
RUN rm -rf /var/run/apache2/apache2.pid

#Expose necessary ports
EXPOSE 80
EXPOSE 1521
EXPOSE 25

#Provide Entrypoint
CMD ["-D", "FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]

突然,我的一个朋友在同一服务器上添加了另一个具有相同端口8080的docker。之后,我的码头工人停了下来。出现以下错误-

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3. Set the 'ServerName' directive globally to suppress this message
httpd (pid 1) already running

经过几个小时的搜索并尝试了许多命令之后,我发现它很容易从服务器中删除整个容器以及图像。因此,我用docker rm删除了所有容器,然后用docker rmi删除了图像。再次,我在本地系统上重新创建了docker镜像(它在这里工作)并传输到服务器。我再次尝试运行docker。但是又遇到了同样的问题。

无法找到原因和解决方案。需要帮助。

1 个答案:

答案 0 :(得分:1)

首先从ENTRYPOINT中删除Dockerfile,然后使用:

CMD [ "/usr/sbin/httpd", "-X" ]

关于AH00558的警告来自您的配置,并且我抱怨您不使用www.test.com,您现在可以忽略它,并且apache仍然可以正常工作。如果您想了解更多信息,请参见this