经常遇到docker运行容器后,会启动不了,不能正常运行的情况,如下图:

几天探索方法未果,无奈。经过查找资料了解到原因,:
Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
针对这种情况的解决方法是:在运行容器指令,同时加一个tail指令,这样docker容器后台发现前台进程运行,就不会退出,一直运行了。示例指令如下:
#docker run -d --name mysql_s02 ... /bin/bash -c "tail -f /dev/null"
运行后,再看#docker ps ,正常运行了。(注: 此方案暂不可行,表面上是正常了,但连接访问mysql仍不能,说明没有正常启动)
正确做法如下:
需要查看docker容器日志,查看取得相应的错误信息,针对来解决。
#docker logs --since 30m 容器id
会列出最近的日志信息(详细可参考https://www.jianshu.com/p/1eb1d1d3f25e),根据提示的报错信息,进行修复即可,截图范例如下:

参考:
本文探讨了Docker容器启动后无法正常运行的问题,解析了容器必须有前台进程的原因,并提供了解决方案。通过查看容器日志,可以定位具体错误信息,进而针对性地修复问题。
196

被折叠的 条评论
为什么被折叠?



