Czy należy używać forever / pm2 w kontenerze (Docker)?

Refaktoruję kilka węzłów.js services. Wszystkie z nich zaczynały się od forever na serwerach wirtualnych, jeśli proces uległ awarii, po prostu uruchamiają się ponownie.

Teraz, przechodząc do kontenerowych i bezstanowych struktur aplikacji, myślę, że proces powinien zakończyć się i kontener powinien zostać ponownie uruchomiony po niepowodzeniu.

Czy to prawda? Czy są zalety czy wady?
Author: Patrick, 2015-03-09

3 answers

Moim zdaniem nie należy używać nadzorcy procesów w kontenerze (forever, pm2), a zamiast tego użyć docker restart policy poprzez --restart=always (lub jeden z innych smaków tej opcji). Jest to bardziej zgodne z ogólną filozofią Dockera i powinno działać bardzo podobnie do nadzoru procesu w kontenerze, ponieważ kontenery docker zaczynają działać bardzo szybko.

Najsilniejszym zwolennikiem uruchomienia nadzoru nad procesem w kontenerze, jaki widziałem, jest Phusion baseimage-Docker README jeśli chcesz poznać inne stanowisko na ten temat.

 44
Author: Peter Lyons,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-09 14:59:04

Chociaż dobrym pomysłem jest użycie --restart=always jako zabezpieczenia awaryjnego, ponowne uruchamianie kontenera jest stosunkowo powolne (5+ sekund z prostym serwerem węzłów Hello World opisanym tutaj ), więc możesz zminimalizować przestoje aplikacji za pomocą czegoś takiego jak forever.

Minusem ponownego uruchomienia procesu w kontenerze jest to, że odzyskiwanie awarii może się teraz zdarzyćna dwa sposoby, co może mieć wpływ na monitorowanie itp.

 16
Author: Aidan Feldman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-27 06:21:04

Węzeł wymaga konfiguracji klastrów, jeśli pracujesz na serwerze z wieloma procesorami.

Z PM2 dostajesz to bez pisania dodatkowego kodu. http://pm2.keymetrics.io/docs/usage/cluster-mode/

Chyba, że używasz kilku serwerów z pojedynczymi instancjami procesora, niż powiedziałbym, że używasz PM2 w produkcji.

Pm2 będzie również szybszy do restartu niż docker

 0
Author: Richard Torcato,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-20 14:41:02