I love to Google search something like “put_your_software_here sucks” and it turns out there are two articles on “vagrant sucks” that caught my eye.
I don’t like Vagrant not because it is written in Ruby (but that is something that can be re-written in Go anyway) but because Vagrant is a leaky abstraction like ORM. Vagrant is just a wrapper around VirtualBox. If you really want to tinker with VirtualBox, use its CLI.
The same with Boot2Docker (read Dan Levy’s “Docker rocks. Boot2Docker just sucks“)
Rather than using Vagrant and Boot2Docker, I just use the user-friendly Turnkey Linux 13 Core. You can access your virtual machine’s command line from a Web browser (shellinabox) and administer it through Webmin.
You can do anything what Vagrant and Boot2Docker can do, plus much much more.
Of course, you need to follow the instructions on installing Docker to Debian but once your VM is done, you can just clone it in VirtualBox and the rest is your development workflow. No more hassle with leaky abstractions like Vagrant and Boot2Docker.