Docker·57 питань

Як налаштувати автоматичний перезапуск контейнерів за допомогою політик рестарту (Restart Policies)?

Відповідь

У реальних умовах експлуатації контейнери можуть завершувати свою роботу через збої в коді, нестачу оперативної пам'яті або перезавантаження хост-машини. Щоб додаток залишався доступним без ручного втручання адміністратора, в Docker передбачено механізм політик перезапуску. Ці правила визначають, чи повинен демон Docker автоматично перезапускати контейнер під час його зупинки.

Політика задається при створенні або запуску контейнера за допомогою спеціального прапора. Доступно кілька варіантів поведінки системи залежно від ваших завдань. Наприклад, можна налаштувати перезапуск тільки у випадку непередбаченого збою з ненульовим кодом виходу.

Основні типи політик рестарту включають такі варіанти:

no — автоматичний перезапуск вимкнений за замовчуванням для всіх нових контейнерів.
always — демон завжди перезапускатиме контейнер незалежно від коду завершення, включаючи ручну зупинку.
unless-stopped — аналогічно always, але контейнер не перезапускається, якщо він був явно зупинений користувачем перед перезавантаженням демона.
on-failure — перезапуск відбувається тільки тоді, коли додаток завершується з помилкою, повертаючи ненульовий код статусу.

Для політики on-failure можна додатково обмежити кількість спроб повторного запуску. Це корисно, щоб нескінченно не навантажувати систему непрацюючим додатком. Обмеження задається через двоточку після назви політики разом із числом спроб.

Грамотне налаштування політик рестарту є базовою вимогою для забезпечення високої доступності додатків. Вона позбавляє розробників та системних адміністраторів необхідності постійно моніторити стан контейнерів вручну.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем