2016-04-29 87 views
1

後,我建立了一個PHP的爾康形象與此Dockerfile碼頭工人停止

FROM ubuntu:14.04 

MAINTAINER betojulio 

COPY apache2_evogas.conf /tmp/apache2.conf 

RUN apt-get update && apt-get install -y \ 
    apache2 \ 
    php5-dev \ 
    php5-mysql \ 
    libapache2-mod-php5 \ 
    gcc \ 
    libpcre3-dev \ 
    git \ 
    && rm -rf /var/lib/apt/lists/* \ 
    && git clone git://github.com/phalcon/cphalcon.git \ 
    && cd cphalcon/build \ 
    && ./install \ 
    && cd /etc/php5/apache2/conf.d \ 
    && echo 'extension=phalcon.so' > phalcon_php.ini \ 
    && cp /tmp/apache2.conf /etc/apache2/apache2.conf \ 
    && a2enmod rewrite 

CMD /usr/sbin/apache2ctl -D FOREGROUND 

啓動容器和創建運行此命令行

docker run -d -p 80:80 --name webserver -v /www:/var/www/html betojulio/phalcon_project:1.0 

,一切運作良好的容器。

我的問題是,我停止容器後,如何重新啓動相同的容器'網絡服務器'具有相同的選項'-d -p 80:80 -v/www:/ var/www/html'我必須刪除它並重新創建它的容器?

預先感謝您。

+1

泊塢窗開始網絡服務器 –

回答

3

像其他的答案說,啓動已停止的容器,我們可以運行:

docker start <container name or id>

如果不保持運行,檢查日誌:

docker logs <container name or id>

如果如果容器由於某種原因而停止,您希望容器自動重啓,請查看docker restart policies

docker run -d --restart=unless-stopped -p 80:80 --name webserver -v /www:/var/www/html betojulio/phalcon_project:1.0 

此外,您可能需要在您的Dockerfile中將您的CMD更改爲以下內容。

CMD ["apache2", "-D", "FOREGROUND"] 
+0

docker logs webserver returns 「AH00558:apache2:無法確定服務器的完全限定域名,使用127.17.0.3。設置'Servername指令globaly'以禁止此消息'Httpd(pid 9已在運行)」 –

+0

您需要更改服務器名稱apache2.conf配置文件。 –

+0

我更改了配置文件!仍然沒有工作 我已經在docker日誌webservice httpd(9)已經運行 –

1
docker start webserver 

就是這樣。

+0

我試試「泊塢窗開始網絡服務器」,但容器不保持運行 我鍵入「泊塢窗PS -a」,並在狀態字段我已經退出(0)2秒前 –

+0

聽起來像你過程再次停止。任何有用的日誌('docker logs webserver')? – Rick

+0

docker logs webserver returns「AH00558:apache2:Could not reliaby determine the server's fully qualifed domain name,using 127.17.0.3。'servername directive globaly to supress this message'Httpd(pid 9 already running)」 –

0

我有一些反饋。

當我跑我的形象與

docker run -d -p 80:80 --name webserver -v /www:/var/www/html betojulio/phalcon_project:1.0

在第一時間一切正常。

運行在容器中的命令是「/ bin/sh -c/usr/sbin」。我知道這個鍵入'docker ps'。 由於正在運行的命令,我無法重新啓動容器。

如果刪除 'CMD/usr/sbin目錄/ apache2ctl -D FOREGROUND' 從Dockerfile,建立一個圖像,並運行容器

docker run -d -p 80:80 --name webserver -v /www:/var/www/html betojulio/phalcon_project:1.0 /usr/sbin/apache2ctl -D FOREGROUND

在容器中運行的命令爲/USR/sbin/apache2ctl和停止容器後,我可以用'碼頭啓動容器'啓動它

這是正常還是有錯誤?

+0

將您的dockerfile中的CMD更改爲'CMD [「/ usr/sbin/apache2ctl」,「-D」,「FOREGROUND」]並查看是否幫助。 –

+0

好的,這是我的新CMD行「CMD ['/ usr/sbin/apache2ctl','-D','FOREGROUND']」。 建立鏡像後,我運行'docker run -d -p 80:80 --name webserver -v/www:/ var/www/html betojulio/phalcon_project:1.0' 容器沒有保持運行,docker日誌返回'/bin/sh:1:[/ usr/sbin/apache2ctl,-D,FOREGROUND]:找不到' –

+0

嗯奇怪,不確定是否會影響,但是您是否嘗試雙引號「而不是單引號」? –