Ctrl -C является «особым», когда у вас есть эмуляция терминала, потому что он перехватывается и приводит к отправке сигнала (SIGINT )вашему сценарию. У вас есть два варианта:
trap xxx SIGINT
, где xxx — это функция bash для выполнения stty intr undef
. Однако у вас, скорее всего, возникнут проблемы с перехватом ctrl -c. Сначала вы не должны использовать docker run
для существующих контейнеров, аdocker start
Из официальной документации:
docker run
Run a command in a new container
docker start
Start one or more stopped (includes exits) containers
В связи с вашей проблемой я предлагаю вам воссоздать (так, чтобыdocker run
)ваш контейнер с флагом--restart always
Источник и дополнительная информация