我用这个Dockerfile构建了一个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
我创建了运行此命令行的容器
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”或停止后重新启动相同的容器“webserver”容器我必须删除它并再次创建它?
提前谢谢你。
答案 0 :(得分:5)
就像其他答案所说的那样,要启动已停止的容器,请运行:
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"]
答案 1 :(得分:1)
docker start webserver
那就是它。
答案 2 :(得分:0)
我有一些反馈。
当我用
运行图像时 docker run -d -p 80:80 --name webserver -v /www:/var/www/html betojulio/phalcon_project:1.0
第一次一切正常。
容器中运行的命令是&#34; / bin / sh -c / usr / sbin&#34; 。我知道这打字&#39; docker ps&#39;。 我无法重启容器,因为正在运行的命令。
如果我删除&#39; CMD / usr / sbin / apache2ctl -D FOREGROUND&#39;从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 ,停止容器后我可以使用&#39; docker start container&#39;
启动它这是正常还是有错误?