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.
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.
This Docker image contains a Flask application configured to run with uWSGI and Nginx. You can also see the image on Docker hub.
minimal-docker-python-setup contains an image with Nginx, uWSGI, Redis and Flask.
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.
Dockering Django, uWSGI and PostgreSQL the serious way walks through both the code and the error messages that will likely crop up as you attempt to container-ize a Django project that uses a PostgreSQL database on the backend.
How to deploy Django using Docker
assumes you already have the basic grasp of working with Docker and
jumps right into a Django deployment. The post shows you how to set up
your Dockerfile
and explains that GitLab CI
can be used to to build this Docker image.
Hosting Python WSGI applications using Docker shows how to use Docker in WSGI application deployments specifically using mod_wsgi.
How to Containerize Python Web Applications is an extensive tutorial that uses a Flask application and deploys it using a Docker container.
How to use Django, PostgreSQL, and Docker shows how to get a Django project that uses PostgreSQL as its back end running in Docker.
Docker in Action - Fitter, Happier, More Productive is a killer tutorial that shows how to combine Docker with CircleCI to continuously deploy a Flask application.
Building smaller Python Docker images examines how to inspect layers in Dockerfiles and minimize the overhead of what images contain for better performance.
The Flask Mega-Tutorial Part XIX: Deployment on Docker Containers is one post in Miguel Grinberg's absolutely spectacular Flask application series.
Deploying Django Applications in Docker explains some of the concepts behind using Docker for Python deployments and shows how to specifically use it for deploying Django.
Using Docker and Docker Compose to replace virtualenv is a tutorial for using Docker instead of virtualenv for dependency isolation.
Lincoln Loop wrote up a closer look at Docker from the perspective of Python developers handling deployments.
Curious how pip and Docker can be used together? Read this article on Efficient management Python projects dependencies with Docker.
Python virtual environments and Docker goes into detail on whether virtual environments should be used with Docker and how system packages can generally be a safer route to go.
Dockerizing Django with Postgres, Gunicorn, and Nginx details how to configure Django to run on Docker along with Postgres, Nginx and Gunicorn.
Dockerizing a Python Django Web Application is another in-depth tutorial on combining Docker with Django.
Dockerizing Flask with Postgres, Gunicorn, and Nginx looks at how to configure Flask to run on Docker along with Postgres, Nginx, and Gunicorn.