解决Docker容器退出后无法重启

问题:
docker container stop后,再start,重启失败,秒退。
因为在Dockerfile中加了CMD, 去run run.sh
原因:
原因是容器的PID1进程(初始化进程)不是一个长时间运行的进程,或者它启动了一个后台进程就退出。由于容器服务是以“detach”方式运行容器,这样当PID1进程结束后就会导致整个容器退出。

image.png

run.sh存在的原因:httpd是个后台进程,没有前台进行,这样docker run以后就直接退出了。

为了解决这个问题,在run.sh中加入如下命令:
tail -f /etc/httpd/logs/xxx.log

再重启容器,重启成功。

但是却发现了如下的问题:
docker重启以后,container能正常重启,但是,web却怎么都访问不到了。
经过操作发现:拒绝访问的问题正式由于:run.sh中加入了tail命令造成的。

删除改代码,又回到了原点。

你可能感兴趣的:(解决Docker容器退出后无法重启)