Vagrant is a way of setting up virtual machines. For example I am not using docker (yet, it&#x27;s in progress) but I use Vagrant on my Mac to run an Ubuntu vm for my dev environment. I even use it on my Ubuntu desktop which is running a different version of Ubuntu. I don&#x27;t have to pollute my mac by installing a bunch of stuff and I get to work in an environment that is more or less identical to my deployment server. You don&#x27;t use Vagrant for deployment, its just a tool for making sure that everyone on the team is using the same environment. Vagrant just makes it very easy to set up because you have a &quot;Vagrant file&quot; that gets checked into the repo which will automatically set up the vm using shell scripts, Puppet, Chef, etc.<p>Docker on the other hand is a tool that assists in isolating Linux processes. You might have many VMs running in a private cloud and process isolation makes it simpler and easier to more efficiently utilize computing resources.