Docker (source code for core Docker project) is an infrastructure management platform for running and deploying software. The Docker platform is evolving so an exact definition is currently a moving target, but the core idea behind Docker is that operating system-level containers are used as an abstraction layer on top of regular servers for deployment and application operations.

Official Docker logo. Copyright Docker.

Why is Docker important?

Docker can package up applications along with their necessary operating system dependencies for easier deployment across environments. In the long run it has the potential to be the abstraction layer that easily manages containers running on top of any type of server, regardless of whether that server is on Amazon Web Services, Google Compute Engine, Linode, Rackspace or elsewhere.

Python projects within Docker images

Docker resources

  • Beginners guide to Docker explains what it is, the difference between containers and virtual machines, and then provides a hands-on walkthrough command-driven tutorial.

  • What is Docker and When to Use It clearly delineates what Docker is and what it isn't. This is a good article for when you're first wrapping your head around Docker conceptually.

  • rubber-docker is an open source repository and tutorial that shows you how to recreate a simplified version of Docker to better understand what it's doing under the hood.

  • Docker curriculum is a detailed tutorial created by a developer to show the exact steps for deploying an application that relies on Elasticsearch.

  • It Really is the Future discusses Docker and containers in the context of whether it's all just a bunch of hype or if this is a real trend for infrastructure automation. This is a great read to set the context for why these tools are important.

  • Docker Jumpstart is a comprehensive introduction to what Docker is and how to get started with using the tool.

  • If you want to quickly use Docker on Mac OS X, check out these concise instructions for setting up your Docker workflow on OS X in 60 seconds.

  • What the Bleep is Docker? is a plain English explanation with examples of what Docker provides and what it can be used for in your environment.

  • Docker in Practice - A Guide for Engineers is an explanation of the concepts and philosophy by the authors of the new Manning Docker book in early access format.

  • Building Docker containers from scratch is a short tutorial for creating a Docker container with a specific configuration.

  • Docker Internals presents Linux containers and how Docker uses them as its base for how the project works. This article is a great way to bridge what you know about Docker with a more traditional Linux operating system architecture understanding.

  • Improve your Dockerfile, best practices covers image size, layers, starting scripts and LABEL.

  • This post gives an overview and comparison of Docker GUIs which can be handy for monitoring your Docker containers.

Python-specific Docker resources

What do you want to learn next about deployments?

I've built a Python web app, now how do I deploy it?

Can I automate testing and deployments for my app?

How do I log errors that occur in my application?

Matt Makai 2012-2022