What is the difference between Docker and VirtualBox?

Docker is an application virtualisation tool. VirtualBox is a Virtual Machine tool.

VB simulates an entire hardware environment whereas Docker isolates the reads/writes of the enclosed application from the rest of the OS.

The overheads of a whole VM can be considerable whereas Docker apps don't need to replicate all of the OS so, in theory, you may be able to get more out of your host environment.

On the other hand, it can be very tricky to get applications to play nicely together with Docker due to the application isolation.

Also, Docker does not yet run on Windows (that is due soon though) so there are platform limitations too.