One of Docker's use cases is to set up identical development environments easily and quickly for a dev team. Recently, I had an opportunity to give it a try, and build Docker images for Qtile, as it didn't have one yet as I get involved. With the images, it's easy to set up the environment to easily run the tests, and build the documentation.
The best way to have a basic idea of Docker is to think it like a chroot environment, as Chris Tankersley stated in his Docker for Developers. And two basic concepts of Docker are image and container, containers to images are what objects to classes as in OOP terminology.
The instructions for building a Docker image are put in a
Dockerfile, every command builds a new layer on top of the previous one so that I can build my image "on the shoulders of giants".
The final Dockerfiles for testing Qtile and building its documentation are hosted at https://github.com/whatacold/qtile-docker, there is a brief README there about how to build them and use them.