точка входа запускается каждый раз, когда контейнер запускается или перезапускается. Обычная практика - помещать загрузочную конфигурацию в сценарий оболочки, который в конце exec
устанавливает «истинную» точку входа приложения. (См. Какую цель использует exe c в docker сценариях точки входа? , почему exec
важен).
Помните, docker на самом деле просто оболочка вокруг файловая система, процесс и сетевое пространство имен. Он не может перезапустить ваш контейнер никоим образом, кроме перезапуска того же самого процесса, который был запущен изначально.
Вы можете попробовать это сами, вызвав что-то вроде этого:
docker run -d --restart=always --entrypoint=sh alpine -c "sleep 5; echo Exiting; exit"
если вы docker logs -f
этот контейнер, вы увидите, что Exiting
выходит через каждые 5 секунд. Обратите внимание, что остановка контейнера также остановит последующий журнал, поэтому вам придется запустить его снова, чтобы увидеть следующий перезапуск.