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.
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.
Andrew Baker presented a fantastic tutorial at PyOhio on beginner and advanced Docker usage. Andrew also wrote the article what containers can do for you.
Docker curriculum is a detailed tutorial created by a developer to show the exact steps for deploying an application that relies on Elasticsearch.
How To Install and Use Docker on Ubuntu 16.04 provides a walkthrough for Ubuntu 16.04 for installing and beginning to use Docker for development.
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.
Eight Docker Development Patterns shares lessons learned and explains how to work with the containers so you get more use out of them during development.
Building Docker containers from scratch is a short tutorial for creating a Docker container with a specific configuration.
10 things to avoid in Docker containers provides a lot of "don'ts" that you'll want to consider before bumping up against the limitations of how containers should be used.
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.
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.
A Docker primer – from zero to a running Django app provides specific commands and expected output for running Django apps with Docker and Vagrant.
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.
Fix errors in your Python code before your users see them by monitoring with Rollbar.
Deploy web apps with the Ansible configuration management tool.
Build microservices with Docker, Flask & React in this great course.