背景:
docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker容器中 pid = 1 的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉。
解决办法
比如
CMD ["sh", "-c", "nps start"] 无法启动
CMD ["sh", "-c", "nps start && sleep infinity"] 可以启动
在命令后添加一个 sleep 命令