我已经启动了我的Docker容器,但它没有熬夜

时间:2017-05-30 05:23:59

标签: apache ubuntu docker containers devops

创建容器后,我检查sudo docker ps,它显示如下图像。

docker ps result

然后我检查了sudo docker ps -a,它显示它在36秒前退出。

这是我的Dockerfile的代码:

FROM ubuntu:14.04
MAINTAINER srini <srinivasanacg@gmail.com>
RUN apt-get update
RUN apt-get install -y apache2
RUN mkdir /var/lock/apache2
ENV APACHE_RUN_USER www_data
ENV APACHE_RUN_GROUP www_data
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_LOG_DIR /var/log/apache2
ENV LANG C
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
EXPOSE 80

2 个答案:

答案 0 :(得分:2)

您必须首先以这种方式调试容器。 的 Dokckerfile

FROM ubuntu:14.04 
MAINTAINER srini 
RUN apt-get update RUN apt-get install -y apache2 
RUN mkdir /var/lock/apache2 
ADD ./entry.sh /var/lock/apache2
ENV APACHE_RUN_USER www_data 
ENV APACHE_RUN_GROUP www_data 
ENV APACHE_PID_FILE /var/run/apache2.pid 
ENV APACHE_RUN_DIR /var/run/apache2 
ENV APACHE_LOCK_DIR /var/lock/apache2 
ENV APACHE_LOG_DIR /var/log/apache2 
#ENV LANG C CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"] EXPOSE 80
ENTRYPOINT ["/bin/bash", "entry.sh" ]

现在 entry.sh

touch /var/lock/apache2/1.txt
tail -f /var/lock/apache2/1.txt

像这样启动你的容器:

docker run -it --name $container_name -d $image_name

现在进入你的容器内:

docker exec -it $container_name bash

手动启动apache2,如下所示:

/usr/sbin/apache2 -D

分析创建问题的位置,检查日志并根据分析更正Dockerfile步骤。

希望这有帮助! 谢谢!

答案 1 :(得分:0)

APACHE_RUN_USER / APACHE_RUN_GROUP环境变量不正确。用户应该是: www-data

➜  docker logs apache
AH00543: apache2: bad user name www_data