2015-05-04 15 views
6

Attualmente sto eseguendo due server virtuali con l'immagine offical ghost image e nginx-proxy, ecco il mio accumulo.come monitorare e riavviare automaticamente il contenitore finestra mobile quando si blocca?

docker run -d -p 86:2368 --name home -e "VIRTUAL_HOST=hostname.com" ghost 
docker run -d -p 85:2368 --name home-blog -e "VIRTUAL_HOST=blog.hostname.com" ghost 

sono tutti lavorando bene, ma dopo un po '(a volte ore o un giorno), uno dei server vitual sarà abbattere, e devo riavviare il contenitore per farlo funzionare.

Mi chiedo se esiste una soluzione per monitorare automaticamente il contenitore docker e riavviarlo quando scende?

risposta

13

Si dovrebbe usare --restart (docs):

docker run -d -p 86:2368 --restart always --name home -e "VIRTUAL_HOST=hostname.com" ghost 
+0

E domande correlate se si utilizza questa opzione e non si riavvia automaticamente dopo un arresto anomalo. Come riavviare un container Docker esistente in restart = "always" mode? http://stackoverflow.com/questions/29603504/how-to-restart-an-existing-docker-container-in-restart-always-mode – Dijkgraaf

4

In realtà, è più probabile applicazione principale del vostro contenitore è caduto e non il vostro contenitore.

Quando il processo con ID # 0 si interrompe o si blocca in un contenitore, il contenitore si arresta automaticamente.

Per quanto riguarda la tua preoccupazione, l'opzione di riavvio (dal comando di esecuzione della finestra mobile) è una possibilità, come affermato da Andy.

Un'altra possibilità è utilizzare supervisord come processo principale del contenitore. La tua applicazione sarà lanciata e monitorata da supervisord. Supervisord ti fornirà molte opzioni per gestire l'arresto anomalo dell'applicazione. Avete molte opzioni utili su registrazione, gestione dei segnali ...

Vedere https://docs.docker.com/articles/using_supervisord/ e http://supervisord.org/ per ulteriori dettagli.

Problemi correlati