Quando inizialmente gestiscono un contenitore Docker da un'immagine è possibile specificare l'opzione:Come riavviare un container Docker esistente in restart = "always" mode?
--restart="always"
Questo assicura che il contenitore è sempre riavviato dal demone Docker se per qualche motivo non si ferma. Così si potrebbe correre un contenitore in questo modo:
docker run --restart="always" <IMAGE>
Inoltre è possibile riavviare un contenitore Docker esistente specificando il suo ID contenitore, vale a dire:
docker start <CONTAINER ID>
Tuttavia non posso determinare se è possibile cambiare un contenitore esistente, che originariamente non era stato eseguito con l'opzione --restart="always
, per convertirlo in riavvio sempre in futuro.
Attualmente l'unico modo che posso pensare di fare ciò è di salvare il contenitore come una nuova immagine e quindi eseguire quell'immagine come un nuovo contenitore con l'opzione --restart="always"
. Questo sarebbe in effetti il modo corretto di farlo?
EDIT: Ciò che forse non ho reso abbastanza chiaro in origine è che sto pensando alla situazione in cui sono stati apportati cambiamenti nel contenitore da quando è stato eseguito originariamente, che devono essere mantenuti. Quindi, eseguire un nuovo contenitore dall'immagine originale non sarebbe sufficiente.
Ma il problema con questo è perdere tutte le modifiche nel contenitore originale perché lo hai eliminato e ne hai creato uno nuovo da zero. Sono abbastanza sicuro che commettere una nuova immagine ed eseguire un nuovo contenitore da quella sarebbe meglio, se ci sono state delle modifiche nel contenitore originale che devono essere mantenute. –
Quindi torniamo al commit – user2915097
@rdc dovresti cercare di evitare di avere modifiche nei contenitori a causa di cose come questa - tenerlo in un volume o in un DB di qualche tipo. –