gpt4 book ai didi

docker - 使用 ENTRYPOINT 启用容器启动和停止的正确方法

转载 作者:行者123 更新时间:2023-12-02 18:49:30 27 4
gpt4 key购买 nike

我正在使用 Dockerfile 构建自定义图像.显然,新的运行工作正常,但是当我停止容器并重新启动它时 - 它没有启动并保持在 的状态0号导出 .

该图像由 apache2 和一堆用于 symfony Web 应用程序的 php 模块组成。

这就是 Dockerfile结尾

RUN a2enmod rewrite
CMD service apache2 restart
ENTRYPOINT ["/usr/sbin/apache2ctl"]
CMD ["-D", "FOREGROUND"]
EXPOSE 80

我看到容器通常使用 docker-entrypoint.sh,但不确定其中的内容及其所起的作用。

最佳答案

入口点不应该与您的容器未重新启动有任何关系。您的问题很可能出在其他地方,您需要查看容器中的日志以进行调试。 docker diff ... 的输出也可能有助于查看容器文件系统中发生了什么变化。

如果 ENTRYPOINT未定义,docker 运行 CMD默认情况下。如果 ENTRYPOINT已定义,CMD 中的任何内容成为入口点脚本的 cli 参数。因此,在上面的示例中,它将使用 /usr/sbin/apache2ctl -D FOREGROUND 启动(或重新启动)容器.在 docker run 中的容器名称之后附加的任何内容命令将覆盖 CMD 的值.您可以覆盖 ENTRYPOINT 的值与 docker run --entrypoint ... .

Docker's documentation on the entrypoint option更多细节。

关于docker - 使用 ENTRYPOINT 启用容器启动和停止的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289338/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com