创建容器后,我检查sudo docker ps
,它显示如下图像。
然后我检查了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
答案 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