使用docer 應該盡量遵循one process per container
但是node 掛了怎麼辦?
我嘗試在容器內使用Pm2,但是容器一起來就結束了, docker 容器至少需要保證有一個進程,如果沒有就會退出.可是我使用pm2為什麼不行?
如果不能使用pm2, docker run restart always 可以解決嗎?
怪我咯2017-04-26 09:03:09
pm2 用在 docker 裡面的時候需要把 pm2 指令改成 pm2-docker 指令,這樣就可以在前台執行。而且我個人覺得沒有必要在 docker 中使用 pm2,如果 node 進程掛掉對應的容器也會停止運行,所以在啟動 docker 容器的時候添加 restart=always 參數就可以自動重啟了
某草草2017-04-26 09:03:09
在運行容器時可以指定使用CPU核心數,如果只是分配一個核心的話就沒有必要啟動多個Node.js進程,因為CPU基本調度單位是線程,只有一個核心意味著運行一個Node.js進程就可以