From wikinotes

Docker is a system built on top of LXC Containers. The core idea is that several base-images are made available, and in your dockerfile you create a set of steps to reproduce every time the docker machine is run.

Docker shines at quickly and consistently setting up environments. When you change an environment, only the last unfinished steps are run.


Docker Hub
Docker docs
Docker CLI
Dockerfile docs
Docker Compose docs
Docker Compose syntax docs


A Dockerfile contains instructions to setup an image.
An image holds a frozen setup of a machine.
Containers are writable copies of an image.

Docker-compose lets you create/configure environments from images with several containers.


docker install
docker usage
docker examples
dockerfile usage
dockerfile syntax
docker-compose usage
docker-compose syntax
docker troubleshooting

External References

overview of docker/docker-compose
good base tutorial on docker
running GUI applications in docker containers
running GUI applications in docker containers (detailed)
dockerfile best practices