Пропишите скрипт в крон. Сделайте флажок в базе/редисе/файле, который будет отвечать за работу скрипта, в скрипте проверяйте этот флажок, если false то выходим из скрипта ничего не делая. С помощью функции меняйте этот флажок там, где вам нужно.
С докером могут быть нюансы, например, ionotify не работает. Монтирование директорий работает не для всего, например директорию с данными монго я не смог смонтировать чтобы работало корректно. То есть после перезапуска докера данные в монго пропадают.
Можно сделать скрытое поле, значение в которое аяксом подгружается по событию нажатия клавиш в поле ввода текста (один раз). Конечно, на 100% не спасает, но большой процент простых ботов отсечь можно