Такое ощущение, что это одно и то же в общих чертах.
вагрант - система управления виртуалками. В том числе может управлять docker контейнерами. Просто упрощение для настройки сети, мэппинга файлов в виртуалку и многое другое
docker - система контейнеризации, изоляция процессов. Там нет виртуализации. Вот и все. Подробнее все есть в гугле.
То есть вагрант только для разработки, docker можно использовать даже для дистрибьюции вашего приложения.