docker容器启动失败正常都是由于启动主进程退出导致的,主进程启动命令往往都是由镜像Dockerfile文件最后的ENTRYPOINT或CMD定义的,此时可覆盖主进程启动命令,更换一个挂起的命令即可。我常用挂起命令:/bin/bash
1、检查容器启动主进程的命令
查看镜像的dockerfile文件(docker history --no-trunc image),检查最后容器启动主进程的命令是什么样的,ENTRYPOINT?CMD?还是它们的组合?覆盖方式稍有不同。为方便演示,我构造了一个简单Dockerfile文件做案例。
2、替换CMD命令案例
3、替换ENTRYPOINT命令案
4、替换ENTRYPOINT&CMD
5、覆盖docker-compose中的主进程命令
6、分析结论