Docker is designed to run anywhere that a 64-bit linux kernel can run. Since OSX doesn’t include a 64-bit linux kernel, hence the need for a virtual machine to provide that.
In production, you’d definitely skip virtualbox altogether and run your 64-bit linux kernel + docker on a production VM hypervisor or bare metal.
These days, you won’t want to use the
boot2docker cli, as it’s been marked as deprecated for some time now. The
docker-machine project is what you’ll want to use. It can provision a boot2docker host (the boot2docker project was initially both a CLI and a minimal OS distro, but now is primarily just the OS distro) The
docker-machine tool can also provision docker in other virtual machine providers such as aws, rackspace, digitalocean, and others.
You could use docker-machine for both dev and production, and change only where you provision the docker machines (local vbox vs aws) depending on whether you are provisioning a dev or prod docker host.