使用 docker 運行 node 需要使用 pm2嗎?
世界只因有你
世界只因有你 2017-04-26 09:01:09
0
4
1709

使用docer 應該盡量遵循one process per container
但是node 掛了怎麼辦?
我嘗試在容器內使用Pm2,但是容器一起來就結束了, docker 容器至少需要保證有一個進程,如果沒有就會退出.可是我使用pm2為什麼不行?
如果不能使用pm2, docker run restart always 可以解決嗎?

世界只因有你
世界只因有你

全部回覆(4)
刘奇

pm2 用在 docker 裡面的時候需要把 pm2 指令改成 pm2-docker 指令,這樣就可以在前台執行。而且我個人覺得沒有必要在 docker 中使用 pm2,如果 node 進程掛掉對應的容器也會停止運行,所以在啟動 docker 容器的時候添加 restart=always 參數就可以自動重啟了

大家讲道理

可以參考:pm2官網的docker整合文件

曾经蜡笔没有小新

你需要保證pm2在前台運行,也就是說dockerfile中的CMD或ENTRYPOINT中啟動的進程不能以daemon方式運行

某草草

在運行容器時可以指定使用CPU核心數,如果只是分配一個核心的話就沒有必要啟動多個Node.js進程,因為CPU基本調度單位是線程,只有一個核心意味著運行一個Node.js進程就可以

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板