Принудительная остановка сервисов с другим сигналом через docker compose kill -s
На этом шаге мы рассмотрим, как использовать команду docker compose kill
с флагом -s
для отправки конкретного сигнала контейнерам. По умолчанию docker compose kill
отправляет сигнал SIGKILL
, который немедленно завершает процесс. Однако иногда требуется отправить другой сигнал, например SIGTERM
, который запрашивает корректное завершение процесса.
Сначала убедимся, что наши сервисы запущены. Перейдите в директорию проекта и запустите сервисы в фоновом режиме.
cd ~/project/my-compose-app
docker-compose up -d
Проверьте, что оба контейнера работают, используя docker ps
.
docker ps
Теперь принудительно остановим все сервисы с сигналом SIGTERM
. Используем флаг -s
с указанием имени сигнала.
docker-compose kill -s SIGTERM
Вы увидите вывод, указывающий на остановку контейнеров с указанным сигналом.
Для подтверждения остановки контейнеров используйте команду docker ps
.
docker ps
Ни контейнер web
, ни redis
не должны отображаться в списке работающих.
Команда docker ps -a
покажет, что контейнеры завершили работу.
docker ps -a
Возможность отправки разных сигналов полезна для более контролируемого завершения работы, позволяя приложениям в контейнерах выполнить задачи очистки перед выходом, если они настроены на обработку этих сигналов.
Наконец, для очистки остановленных контейнеров и сети, созданной Docker Compose, можно использовать команду docker compose down
.
docker-compose down
Эта команда остановит и удалит контейнеры, сети и тома, определённые в файле docker-compose.yml
.