L'uso della --restart=always
politica gestirà il riavvio dei contenitori esistenti in caso di riavvio.
Il problema è che se ci sono più contenitori con --restart=always
quando si esegue l'immagine di una versione più recente come discusso nella finestra mobile - come si disabilita il riavvio automatico su un contenitore? .
Cercare di rimuovere automaticamente il contenitore quando esiste tramite l'opzione put docker run --rm
creerà problemi con la --restart=always
politica poiché sono in conflitto tra loro .
$ docker run --rm --restart always <image>
Conflicting options: --restart and --rm
Quindi in questo caso è meglio scegliere un'altra opzione: --restart a meno che la politica non venga interrotta .
$ docker run --rm --restart unless-stopped <image>
Questa politica non sarà in conflitto la docker run --rm
ma come spiegato nella documentazione di finestra mobile :
È simile a --restart=always
, tranne che quando il contenitore viene arrestato (manualmente o in altro modo) , non viene riavviato anche dopo il riavvio del daemon Docker.
Quindi, quando si utilizza questa --restart unless-stopped
politica, per assicurarsi che il riavvio funzioni nel caso in cui si interrompa per errore quando si chiude il terminale, fare una volta in un altro terminale come di seguito:
$ docker ps
$ docker restart <container>
Attendi il termine del processo di uccisione nella shell precedente, quindi chiudilo e lascialo ( non uscire ).
E ricontrolla nel terminale rimasto se il contenitore è ancora in esecuzione:
$ docker ps
Se è ancora in esecuzione, è possibile riavviare in modo sicuro e verificare nuovamente che l'applicazione si riavvii e vedere che la finestra mobile è pulita senza inutilizzare più contenitori.