84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
使用 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에서 시작된 프로세스는 데몬 모드에서 실행될 수 없습니다.
컨테이너를 실행할 때 사용할 CPU 코어 수를 지정할 수 있습니다. 코어를 하나만 할당하면 CPU의 기본 스케줄링 단위가 스레드 전용이므로 여러 Node.js 프로세스를 시작할 필요가 없습니다. 하나의 코어는 하나의 Node.js 프로세스를 실행하는 것을 의미합니다
pm2를 docker에서 사용하는 경우 pm2 명령을 pm2-docker 명령으로 변경해야 포그라운드에서 실행될 수 있습니다. 그리고 개인적으로는 docker에서 pm2를 사용할 필요가 없다고 생각합니다. node 프로세스가 멈추면 해당 컨테이너도 실행이 중지되므로 docker 컨테이너를 시작할 때 restart=always 매개변수를 추가하면 자동으로 다시 시작됩니다
pm2 공식 웹사이트의 docker 통합 문서를 참고하세요
pm2가 포그라운드에서 실행되고 있는지 확인해야 합니다. 즉, dockerfile의 CMD 또는 ENTRYPOINT에서 시작된 프로세스는 데몬 모드에서 실행될 수 없습니다.
컨테이너를 실행할 때 사용할 CPU 코어 수를 지정할 수 있습니다. 코어를 하나만 할당하면 CPU의 기본 스케줄링 단위가 스레드 전용이므로 여러 Node.js 프로세스를 시작할 필요가 없습니다. 하나의 코어는 하나의 Node.js 프로세스를 실행하는 것을 의미합니다