docker工人在停车后启动一个集装箱

我用这个Dockerfilebuild立了一个phalcon php镜像

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 

我创build了运行这个命令行的容器

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

一切正常。

我的问题是,我停止容器后,如何重新启动相同的容器'networking服务器'具有相同的选项'-d -p 80:80 -v / www:/ var / www / html'或停止容器后,我有删除它并重新创build它?

先谢谢你。

像其他答案一样,为了启动一个停止的容器,你运行:

docker start <container name or id>

如果不能保持运行,请检查日志:

docker logs <container name or id>

如果您希望容器在由于某种原因而停止时自动重启,请查看docker restart策略 。

 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"] 
 docker start webserver 

而已。

我有一些反馈。

当我运行我的形象

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

第一次一切运作良好。

在容器中运行的命令是“/ bin / sh -c / usr / sbin” 。 我知道这个打字“dockerps”。 我无法重新启动容器,因为正在运行的命令。

如果我从Dockerfile中删除“CMD / usr / sbin / apache2ctl -D FOREGROUND”,build立一个图像并运行容器

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 ,停止容器后,我可以用'docker start container'

这是正常的还是有一个错误?