docker restart 后服务启动失败

docker restart 后服务启动失败

我创建了一个安装了 httpd 服务的 docker 容器。但是每当我重新启动容器时,httpd 服务都不会重新上线。即使我在 chkconfig 中添加了该服务。httpd 状态显示为“httpd 已死但 pid 文件存在”

我已经检查过docker容器日志

{"log":"[Thu Apr 27 02:38:59 2017] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)\r\n","stream":"stdout","time":"2017-04-27T03:32:12.168314399Z"}
{"log":"[Thu Apr 27 02:38:59 2017] [notice] Digest: generating secret for digest authentication ...\r\n","stream":"stdout","time":"2017-04-27T03:32:12.168317105Z"}
{"log":"[Thu Apr 27 02:38:59 2017] [notice] Digest: done\r\n","stream":"stdout","time":"2017-04-27T03:32:12.168319918Z"}
{"log":"[Thu Apr 27 02:38:59 2017] [notice] Apache/2.2.31 (Unix) DAV/2 configured -- resuming normal operations\r\n","stream":"stdout","time":"2017-04-27T03:32:12.168322653Z"}
{"log":"^C\r\n","stream":"stdout","time":"2017-04-27T03:32:45.680664198Z"}

但它没有显示任何有用的信息来解决该问题。

我的 docker 正在运行 AWS EC2 服务器。

有人能帮助我吗?

答案1

我在使用图像时遇到了这个问题fauria/lap。似乎容器没有正常结束 httpd 进程,因此由于 pid 文件,容器第二次启动时服务无法启动。

我们的解决方案是实现一个中介docker-entrypoint2.sh,删除该文件并调用原始文件docker-entrypoint.sh

在我们的案例中,这种行为是从centos:7及其附带的服务管理系统继承而来的。

相关内容