AP
Vagrant не решает задачу автоматизации виртуализации. Да и Docker тоже. Виртуализация в данном случае лишь средство. Vagrant разворачивает рабочее окружение. Docker же разворачивает приложение. Но боевое окружение - это не только Docker с контейнерами. Например, может быть мониторинг, который обычно живет вне Docker, что логично. А внутри контейнеров живут только агенты.
docker на vagrant - это не "еще один слой виртуализации". Если брать Windows или Mac - docker уже живет внутри виртуалки. Разве что в случае их - оно теперь в hypervisor, а не внутри настоящей виртуалки, что более производительно.
Зачем запускать docker в vagrant? Например, потому что он может быть удобнее, чем другие средства provision. Например, потому что окружение может состоять не только из контейнизированных приложений и надо протестить как оно будет работать вместе.
Зачем нужен Vagrant - ну потому что не все и не всегда юзают Docker, но хотят иметь изолированное рабочее окружение по тем или иным причинам.