Docker is essentially a virtual machine manager however it does not use whole os images. It runs containers which are usually responsibe for running one process (e.g. nginx). Docker is the core system that manages how these are run. They are relatively lightweight compared to vm images as it should only contain the bare minimum software packages for it to run. These docker images are usually stored on the docker hub but can be stored locally. Docker is very usefull as you can easily run these containers anywhere on any system providing that system already has docker-machine installed and it will give the same result. It's great for portability.
Docker machine is the core part that the containers run on. Installation instructions can be found here: https://docs.docker.com/engine/installation/linux/ubuntulinux/
Once running you can use this command to see what containers are active and which ones have exited.
docker ps -a
You can use docker start to start various apps based on either local docker files or image names from docker hub.
docker start nginx
Using docker in production gets a bit more complicated as you can't ssh into every prod machine and exec docker commands. Also as docker will bind to a different port on each server if you're running multiple containers you will need a system to keep track of this. AWS ECS can do this but other third party tools are available such as rancher. See docker in production doc in this wiki for more info.
Play Blokr Now FREE!
blokr.io the web game where you can eat other blocks!