Как я сейчас понимаю: docker, vagrant используются когда мы хотим проект залить на выделенный сервер. А openserver когда хотим залить на виртуальный хостинг где уже установлены скажем apache, php и т.д
Нет.
Vagrant всего лишь удобный способ конфигурирования и запуска ПО в изолированной среде.
Ориентирован на разработку.
Docker - способ изоляции для разработки, развертывания и эксплуатации, опять таки со своими удобствами.
Ключевое слово - изоляция.
Использовать Docker на классических shared-хостингах, действительно, невозможно. На VDS/VPS - возможно, тут вы правы.
Про проблему изоляции:
Любое ПО нуждается в определенном окружении. Библиотеки, прочие сервисы (например, СУБД), конфигурирование определенным образом, расположение файлов и пр.
Встречаются ситуации, когда, будучи отлаженным на одном компьютере, ПО при переносе на другой - категорически отказывается работать.
Простейшая ситуация - из-за нехватки модулей/библиотек/сервисов. Если это так - их можно просто доставить (хотя это тоже время на разборки).
Более сложная ситуация, когда на компьютере требуется более одного ключевого ПО. А модуля/библиотеки этих разных программ вступают в противоречие (требуются разные версии).
Вот чтобы со всем этим не разбираться - и придуман Docker.
Вы отлаживаете во вполне определенном окружении и с вполне определенными настройками - и в точно таком же виде переносите на рабочую систему.
Vagrant - это просто удобство для разработчика.
Для быстрого воссоздания определенных настроек.