Разница между on-failure и always перезапуском контейнеров заключается в условиях перезапуска. 13
On-failure заставляет Docker перезапускать контейнер только в том случае, если он завершился с кодом ошибки (не равным 0). 3 Это может быть полезно для отладки приложения, когда нормальное завершение указывает на успешное выполнение задачи. 1
Always, в свою очередь, указывает Docker всегда перезапускать контейнер, вне зависимости от причины его остановки (будь то ошибка или ручная остановка). 3 Такая стратегия подходит для контейнеров, которые должны оставаться работающими постоянно. 3
Таким образом, on-failure лучше использовать для контейнеров, которые должны функционировать, но могут иногда выходить из строя, а always — для контейнеров, предоставляющих услуги, которые всегда должны быть доступны. 3