停止后,docker启动容器

时间:2016-04-29 20:39:06

标签: docker

我用这个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”容器我必须删除它并再次创建它?

提前谢谢你。

3 个答案:

答案 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;

启动它

这是正常还是有错误?