Virtualbox sucks. Using a VM other than Virtualbox with Vagrant would have solved your problems too.
It's just adding yet another layer to the stack, so another interface to learn. And if things don't work you have to deal with the “low level“ docker setup anyway.
Seriously, I've never looked back at Vagrant ever since.