2017-05-30 42 views
0

創建容器後,我使用sudo docker ps進行檢查,結果如下圖所示。我已經開始使用我的Docker容器,但它不在熬夜

docker ps result

然後我檢查使用sudo docker ps -a,它顯示了它退出36秒前。

這是我Dockerfile的代碼:

FROM ubuntu:14.04 
MAINTAINER srini <[email protected]> 
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

你必須先調試像這樣的容器。 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步驟。

希望得到這個幫助! 謝謝!

+0

謝謝你這麼多的兄弟 –

+0

它顯示「從後臺程序錯誤響應:集裝箱e4f6f7353732526080d6507687d0707dd62e806c38d9265e8e49832cef80d82c未運行」 –

+0

第一'碼頭工人停止$ container_name'比'搬運工RM -v $ container_name'之後按照我提供的步驟操作。 –

0

APACHE_RUN_USER/APACHE_RUN_GROUP環境變量不正確。用戶應該是:www數據

➜ docker logs apache 
AH00543: apache2: bad user name www_data 
相關問題