84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
使用 docer 应该尽量遵循 one process per container但是 node 挂了怎么办? 我尝试在容器内使用 Pm2,但是容器一起来就结束了, docker 容器至少需要保证有一个进程,如果没有就会退出.可是我使用pm2为什么不行呢?如果不能使用 pm2, docker run restart always 可以解决吗?
pm2 用在 docker 里面的时候需要把 pm2 命令改成 pm2-docker 命令,这样就可以在前台运行。而且我个人感觉没有必要在 docker 中使用 pm2,如果 node 进程挂掉对应的容器也会停止运行,所以在启动 docker 容器的时候添加 restart=always 参数就可以自动重启了
可以参考:pm2官网的docker集成文档
你需要保证pm2在前台运行,也就是说说dockerfile中的CMD或者ENTRYPOINT中启动的进程不能以daemon方式运行
在运行容器时可以指定使用CPU核心数,如果只是分配一个核心的话就没有必要启动多个Node.js进程,因为CPU基本调度单位是线程,只有一个核心意味着运行一个Node.js进程就可以
pm2 用在 docker 里面的时候需要把 pm2 命令改成 pm2-docker 命令,这样就可以在前台运行。而且我个人感觉没有必要在 docker 中使用 pm2,如果 node 进程挂掉对应的容器也会停止运行,所以在启动 docker 容器的时候添加 restart=always 参数就可以自动重启了
可以参考:pm2官网的docker集成文档
你需要保证pm2在前台运行,也就是说说dockerfile中的CMD或者ENTRYPOINT中启动的进程不能以daemon方式运行
在运行容器时可以指定使用CPU核心数,如果只是分配一个核心的话就没有必要启动多个Node.js进程,因为CPU基本调度单位是线程,只有一个核心意味着运行一个Node.js进程就可以