Как деплоить docker-контейнер без простоя?
Как я себе представляю решение:
В целом правильно. Идея простая - поднять новый инстанс, перестать слать траффик на старый, подождать пока закончится обработка запросов, убить старый. Это не фантастически сложно, но надо реализовать.
Или пользоваться оркестратором - K8S, и т.п.

Еще вариант - немного дороже, но надежнее - использовать managed service - AWS Elastic Beanstalk,  Google App Engine , Heroku.
Инициализировать Docker Swarm с одной нодой.
Создать сервис с приложением - app.
И обновлять сервис с нужными параметрами для исключения простоя.
Простой пример:
docker service create --name nginx --replicas 1 --publish 80:80 nginx:1.18
docker service update nginx --update-order start-first --image nginx:1.19
docker service update
