Случай: у нас есть док-контейнер, который запускает bash-скрипт, который необходимо «заблокировать» навсегда (поскольку он предоставляет том для другого контейнера, но есть и другие причины, по которым мы иногда этого хотим).
Я думал, что это может сработать тогда:
exec sleep infinity;
ps aux затем дает «сон» как PID 1. Отлично, подумал я, тогда он будет получать сигналы, которые мы посылаем ему из-за пределов контейнера. Например:
docker kill -s INT container_name
Но это не работает, контейнер продолжает работать (также для SIGTERM). Обычное убийство работает, но я не понимаю, в чем разница (что меня сильно раздражает):
docker kill container_name
Почему я не могу убить «сон» с помощью SIGINT/SIGTERM, когда он работает как PID 1 в моем контейнере? Я считаю, что могу убить другие вещи (например, сценарии bash) с помощью SIGINT/SIGTERM, когда они работают как PID 1 в контейнере.
Dockerfile
? - person Andy Shinn   schedule 17.07.2017