Docker non ha una funzionalità di “riparazione automatica”, ma offre una politica di riavvio che può essere utilizzata per gestire i contenitori che escono inaspettatamente.
Quando si esegue un contenitore, è possibile specificare una politica di riavvio con l’opzione `—restart`. Ci sono quattro scelte:
- `no`: questa è l’opzione predefinita che non riavvia un contenitore se si avvia inaspettatamente.
- `always`: riavvia il contenitore in caso di uscita, indipendentemente dal codice di uscita.
- `on-failure`: riavvia il contenitore solo se esce con un codice di errore non zero (che di solito indica che si è verificato un errore).
- `unless-stopped`: riavvia il contenitore a meno che non venga fermato manualmente dall’utente, o se Docker stesso viene arrestato o riavviato.
Per esempio, eseguendo un contenitore con l’opzione `—restart=always` farà in modo che Docker tenti di riavviare il contenitore ogni volta che si arresta:
```
docker run -d —restart=always my-app
```
Ciò può “riparare” un contenitore nel senso che continuerà a tentare di eseguirlo anche se qualcosa va storto. Tuttavia, se un contenitore continua a uscire, probabilmente è necessario indagare e risolvere la causa dell’uscita, piuttosto che affidarsi semplicemente a questa funzionalità di riavvio.