veggiemonk/awesome-docker
Awesome Docker

A curated list of Docker resources and projects
If you would like to contribute, please read CONTRIBUTING.md first. It contains a lot of tips and guidelines to help keep things organized. Just click README.md to submit a pull request. If this list is not complete, you can contribute to make it so. Here is a great video tutorial to learn how to contribute on Github.
You can see the updates on TWITTER
Please, help organize these resources so that they are easy to find and understand for newcomers. See how to Contribute for tips!
If you see a link here that is not (any longer) a good fit, you can fix it by submitting a pull request to improve this file. Thank you!
The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. This page is not an official Docker product in any way. It is a list of links to projects and is maintained by volunteers. Everybody is welcome to contribute. The goal of this repo is to index open-source projects, not to advertise for profit.
All the links are monitored and tested with a home baked Node.js script
Contents
- Legend
- What is Docker
- Where to start
- Where to start (Windows)
- Projects
- Useful Resources
- Communities and Meetups
Legend
- Abandoned
- Beta
- Monetized
What is Docker
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.
Source: What is Docker
Where to start
- Benefits of using Docker for development and delivery, with a practical roadmap for adoption.
- Bootstrapping Microservices by Ashley Davis - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster.
- Docker Curriculumstars4.8k: A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service.
- Docker Documentation: the official documentation.
- Docker for beginners: A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts.
- Docker for novices An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews.
- Docker simplified in 55 seconds: An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials.
- Docker Training
- Docker Tutorial for Beginners (Updated 2019 version) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language.
- Katacoda: Learn Docker using Interactive Browser-Based Labs
- Learn Dockerstars198: step-by-step tutorial and more resources (video, articles, cheat sheets) by @dwyl
- Play With Docker: PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser.
- Practical Guide about Docker Commands in Spanishstars179 This spanish guide contains the use of basic docker commands with real life examples.
- Practical Introduction to Container Terminology The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology.
- The Docker Handbook An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on fhsinchy/the-docker-handbookstars621 and the projects are hosted on fhsinchy/docker-handbook-projectsstars1.1k repository.
Cheatsheets by
- @eon01stars3.4k
- @dimonomidstars174 (PDF)
- @JensPiegsastars19
- @wsargentstars20.9k (Most popular)
Where to start (Windows)
- A Comparative Study of Docker Engine on Windows Server vs Linux Platform Comparing the feature sets and implementations of Docker on Windows and Linux
- Build And Run Your First Docker Windows Server Container Walkthrough installing Docker on Windows 10, building a Docker image and running a Windows container
- Docker on Windows behind a firewall by @kaitoedter
- Docker Quick Tutorial Introduces you to the official Getting Started Tutorial using Windows 10 and Hyper-V.
- Docker Reference Architecture: Modernizing Traditional .NET Framework Applications - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization.
- Docker with Microsoft SQL 2016 + ASP.NET Demonstration running ASP.NET and SQL Server workloads in Docker
- Exploring ASP.NET Core with Docker in both Linux and Windows Containers Running ASP.NET Core apps in Linux and Windows containers, using Docker for Windows
- Running a Legacy ASP.NET App in a Windows Container Steps for Dockerizing a legacy ASP.NET app and running as a Windows container
- Windows Containers and Docker: The 101
- A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps
- Windows Containers Quick Start Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016
Projects
- Moby = open source development
- Docker CE = free product release based on Moby
- Docker EE = commercial product release based on Docker CE.
Docker EE is on the same code base as Docker CE, so also built from Moby, with commercial components added, such as "docker data center / universal control plane"
- Mobystars63.4k
- Docker Images
- Docker Composestars26.3k (Define and run multi-container applications with Docker)
- Docker Machinestars6.5k (Machine management for a container-centric world)
- Docker Registry (The Docker toolset to pack, ship, store, and deliver content)
- Docker Swarmstars5.8k (Swarm: a Docker-native clustering system)
Container Operations
Container Composition
- bockerstars129 (2)
- Write Dockerfile completely in Bash. Extensible and simple. --> Reusable by @icy
- bockerstars8.7k (1)
- Docker implemented in 100 lines of bash by p8952
- boxstars237 - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation
- Capitanstars23 - Composable docker orchestration with added scripting support by @byrnedo.
- compose_plantumlstars77
- Generate Plantuml graphs from docker-compose files by @funkwerk
- Composerizestars1.6k - Convert docker run commands into docker-compose files
- crowdrstars87 - Tool for managing multiple Docker containers (
docker-compose
alternative) by @polonskiy - docker-compose-graphvizstars47
- Turn a docker-compose.yml files into Graphviz .dot files by @abesto
- docker-config-updatestars39 - Utility to update docker configs and secrets for deploying in a compose file by @sudo-bmitch
- draw-composestars83
- Utility to draw a schema of a docker compose by @Alexis-benoist
- elsystars73 - An opinionated, multi-language, build tool based on Docker and Docker Compose
- habitusstars1.2k - A Build Flow Tool for Docker by @cloud66
- komposestars7.7k - Go from Docker Compose to Kubernetes
- Maestrostars616
- Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by @tascanini
- Nuxxstars134 - Visually generate docker-compose.yaml code with drag-n-drop UI. By @corpulent
- percheronstars158
- Organise your Docker containers with muscle and intelligence by @ashmckenzie
- plashstars360 - A container run and build engine - runs inside docker.
- podman-composestars3.1k - a script to run docker-compose.yml using podman by @containers
- rocker-composestars409
- Docker composition tool with idempotency features for deploying apps composed of multiple containers. By@grammarly.
- rockerstars1.3k
- Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by @grammarly.
- Smaltestars27 – Dynamically configure applications that require static configuration in docker container. By @roquie
- Stackerstars63
- Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience).
- Stitchockerstars10 - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By @alexaandrov
- Zodiacstars194
- A lightweight tool for easy deployment and rollback of dockerized applications. By @CenturyLinkLabs
Deployment and Infrastructure
- awesome-stacksstars361 - Deploy 80+ open-source web apps with one Docker command
- blackfish - a CoreOS VM to build swarm clusters for Dev & Production by @blackfish
- BosnD - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments.
- Centurionstars1.7k - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By @newrelic
- Clockerstars425 - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages Calico and Weave for networking and Brooklyn for application blueprints. By @brooklyncentral
- Conduitstars105 - Experimental deployment system for Docker by @ehazlett
- depconstars91 - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By @ContainX
- deploystars54
- Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration by @ttiny
- dockitstars106
- Do docker actions and Deploy gluster containers! By @humblec
- gitkubestars3.7k - Gitkube is a tool for building and deploying docker images on Kubernetes using
git push
. By @Hasura. - Grafeasstars1.4k - A common API for metadata about containers, from image and build details to security vulnerabilities. By grafeas
- Longshoremanstars424
- Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By longshoreman
- SwarmManagementstars2 - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create.
- werfstars3.2k - werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps by @flant
Monitoring
- Autohealstars704 - Monitor and restart unhealthy docker containers automatically.
- Axibase Collectorstars4 - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems.
- cAdvisorstars13.5k - Analyzes resource usage and performance characteristics of running containers. Created by @Google
- Docker-Alertdstars93 - Monitor and send alerts based on docker container resource usage/statistics
- Docker-Flow-Monitorstars78 - Reconfigures Prometheus when a new service is updated or deployed automatically by @docker-flow
- Dockeranastars202
- packaged version of Graphite and Grafana, specifically targeted at metrics from Docker.
- DockProc - I/O monitoring for containers on processlevel.
- dockpromstars4.9k - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by @stefanprodan
- Dozzlestars1.6k - Monitor container logs in real-time with a browser or mobile device. @amir20
- Dynatrace
- Monitor containerized applications without installing agents or modifying your Run commands
- Glancesstars20.7k - A cross-platform curses-based system monitoring tool written in Python by @nicolargo
- Grafana Docker Dashboard Template - A template for your Docker, Grafana and Prometheus stack @vegasbrianc
- InfluxDB, cAdvisor, Grafanastars454 - InfluxDB Time series DB in combination with Grafana and cAdvisor by @vegasbrianc
- LogJamstars134 - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by @gocardless
- Logspoutstars4.4k - Log routing for Docker container logs by @gliderlabs
- monit-dockerstars21 - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus]
- NexClipperstars559 - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by @Nexclipper
- Out-of-the-box Host/Container Monitoring/Logging/Alerting Stackstars498 - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in Automated Nginx Reverse Proxy (jwilder's).
- SuperVisor CPM Frontend Servicestars15 and Driver Servicestars6
- A simple and accessible FOSS container performance monitoring service written in Python by @t0xic0der
- SwarmAlertstars15 - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running.
- Zabbix Docker modulestars1.2k - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution.
- Zabbix Dockerstars47 - Monitor containers automatically using zabbix LLD feature.
Networking
- Calico-Docker - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other.
- Flannelstars7.3k - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By @coreos
- Freeflowstars520 - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By @Microsoft
- netshootstars4.7k - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by @nicolaka
- Pipeworkstars4k - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By @jpetazzo
- Weave (The Docker network) - Weave creates a virtual network that connects Docker containers deployed across multiple hosts.
Orchestration
- athenastars88 - An automation platform with a plugin architecture that allows you to easily create and share services.
- blimpstars22
- Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by @defermat and @schvin
- CloudSlangstars220 - CloudSlang is a workflow engine to create Docker process automation
- clusterdockstars26 - Docker container orchestration to enable the testing of long-running cluster deployments
- Cranestars751 - Control plane based on docker built-in swarm @Dataman-Cloud
- Docker Flow Swarm Listenerstars64 - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By @docker-flow
- gantrydstars267
- A framework for easy management of docker-based components across machines by @DevTable
- Havenstars248 - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By @codeabovelab
- Heliosstars2.1k
- A simple platform for deploying and managing containers across an entire fleet of servers by @spotify
- Kontenastars1.5k
- The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use.
- Kubernetesstars89.6k - Open source orchestration system for Docker containers by Google
- ManageIQstars1.2k - Discover, optimize and control your hybrid IT. By ManageIQ
- Mantlstars3k - Mantl is a modern platform for rapidly deploying globally distributed services
- Marathonstars4k - Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on"
- Mesosstars4.9k - Resource/Job scheduler for containers, VM's and physical hosts @apache
- Nebula - A Docker orchestration tool designed to manage massive scale distributed clusters.
- Nomadstars11.6k - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by @hashicorp
- Panamaxstars1.4k
- An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by @CenturyLinkLabs.
- Rancherstars19.4k - An open source project that provides a complete platform for operating Docker in production by @rancher.
- RedHerd Frameworkstars46 - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By @RedHerdProject.
- Swarm-cronjobstars531 - Create jobs on a time-based schedule on Swarm by @crazy-max