At times you get the pleasure of working with some cutting edge technology that gives you the "wow that's pretty slick" feeling. Other times it can be a rocky unstable mess. Docker is one such technology that has not been the later. The concept is simple, run this self contained little unit on bare metal as if it were a virtual machine. The analogy many liken this too is a shipping yard with lots of containers. The containers are the self contained packages and since all containers have the same shape the can be stacked and treated the same even though each container's internals can vary greatly. Hence, one of the reasons Docker calls these units containers.
I've had success setting this up on Windows and a Mac, both of which use a tool called boot2docker. Since Docker only runs on Linux systems, both Windows and Mac need to use Virtual Box to spin up a Linux machine that can host Docker. For Windows check out https://docs.docker.com/installation/windows/ and for Mac see https://docs.docker.com/installation/mac/. I had a little trouble at first on Windows, which required deleting the VM on disk then re-initializing docker. After they are up and running, it's a breeze getting a container started, just type "docker run container name". It's that simple. Of course, if you want your container to expose ports and do other things there's a little more to it, but if you want to test out Linux based products, this is a very slick way to do it. To see a list of docker supported containers go to https://registry.hub.docker.com/. Pluralsight also has some good modules on how to use docker.