CONTRIBUTING.md | ||
README.md |
Awesome Docker
A curated list of Docker resources and projects
Inspired by @sindresorhus' awesome and improved by these amazing contributors.
It's now a github project because it's considerably easier for other people to edit, fix and expand on Docker using Github. Just click README.md. If this list is not complete, you can contribute to make it so.
Please, help organize these resources so that they are easy to find and understand for new comers. See how to Contribute
If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!
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 ?
- 10-minute Interactive Tutorial
- Docker Training
- Read this complete article: Basics – Docker, Containers, Hypervisors, CoreOS
- Watch the video: Docker for Developers (54:26) by @jpetazzo
- Docker Jumpstart: a quick introduction
- Install Docker on your machine and play with a few Useful Images
- Try Panamax: Docker Management for Humans It will install a CoreOS VM with VirtualBox and has nice front end
- Install Docker Toolbox Docker Toolbox is an installer to quickly and easily install and setup a Docker environment on your computer. Available for both Windows and Mac, the Toolbox installs Docker Client, Machine, Compose (Mac only), Kitematic and VirtualBox.
- Check out: Docker Cheat Sheet by @wsargent MUST SEE
- Project Web Dev : (Article series) How to create your own website based on Docker
- Docker Containers on the desktop by @jfrazelle The funniest way to learn about docker! (Tips: checkout her dotfiles and her dockerfiles)
- Container Hacks and Fun Images by @jfrazelle @ DockerCon 2015 MUST WATCH VIDEO (38:50)
MENU
- What is Docker ?
- Where to start ?
- Useful Articles
- Main Resources
- General Articles
- Deep Dive
- Networking
- Metal
- Multi-Server
- Cloud Infrastructure
- Good Tips
- Newsletter
- Continuous Integration
- Optimizing Images
- Service Discovery
- Security
- Performances
- Raspberry Pi & ARM
- Other
- Books
- Tools
- Dev Tools
- Continuous Integration / Continuous Delivery
- Deployment
- Hosting for repositories (registries)
- Hosting for containers
- Reverse Proxy
- Web Interface
- Local Container Manager
- Useful Images
- Dockerfile
- Storing Images
- Monitoring
- Networking
- Logging
- Deployment and Infrastructure
- PaaS
- Remote Container Manager / Orchestration
- Service Discovery
- Slides
- Videos
- Interesting Twitter Accounts
Useful Articles
Main Resources
- Docker Weekly Huge resource
- Docker Cheat Sheet by @wsargent MUST SEE
- CenturyLink Labs
- Valuable Docker Links Very complete
- Docker Ecosystem (Mind Map) MUST SEE
- Docker Ecosystem (PDF) MUST SEE find it on twitter by Bryzgalov Peter.
- Blog of @jpetazzo
- Blog of @progrium
- Blog of @jwilder
- Blog of @crosbymichael
- Blog of @gliderlabs
- Blog of @sebgoa
- Digital Ocean Community
- Container42
- Contrainer solutions
- DockerOne Docker Community (in Chinese) by @LiYingJie
- Project Web Dev : (Article series) How to create your own website based on Docker
- Docker vs. VMs? Combining Both for Cloud Portability Nirvana
- Docker Containers on the desktop by @jfrazelle The funniest way to learn about docker! (Tips: checkout her dotfiles and her dockerfiles)
General Articles
- Getting Started with Docker by @fideloper -- Servers For Hackers is valuable resource. At some point, every programmer finds themselves needing to know their way around a server.
- How to Use Docker on OS X: The Missing Guide
- Docker for (Java) Developers
- Deploying NGINX with Docker
- Eight Docker Development Patterns
- Rails Development Environment for OS X using Docker
- Logging on Docker: What You Need to Know + see the video (~50min)
- Comparing Five Monitoring Options for Docker
- Minimalistic data-only container for Docker Compose (Written Mar 1, 2015)
- Running Docker Containers with Systemd
- Dockerizing Flask With Compose and Machine - From Localhost to the Cloud -- GitHub Learn how to deploy an application using Docker Compose and Docker Machine (written 17 April 2015)
- Why and How to use Docker for Development (written 28 APR 2015)
- Automating Docker Logging: ElasticSearch, Logstash, Kibana, and Logspout (written 27 APR 2015)
- Docker Host Volume Synchronization (written 1 JUN 2015)
- Multi-Service Local Development Environment with Vagrant and Docker (written 29 MAY 2015)
- From Local Development to Remote Deployment with Docker Machine and Compose (written 2 JUL 2015)
- Docker: Build, Ship and Run Any App, Anywhere by Martijn Dwars, Wiebe van Geest, Rik Nijessen, and Rick Wieman from Delft University of Technology (written 2 JUL 2015)
- Joining the Docker Ship Learn how to contribute to docker (written 9 JUL 2015)
- Continuous Deployment with Gradle and Docker Describes a complete pipeline from source to production deploy (includes a complete Spring Boot example project) by @gesellix
Deep Dive
- Creating containers - Part 1 This is part one of a series of blog posts detailing how docker creates containers. By @crosbymichael
- Data-only container madness
Networking
- Using Docker Machine with Weave 0.10 (written 22 APR 2015)
- How to Route Traffic through a Tor Docker container by @jfrazelle (writtent 20 JUN 2015)
Metal
Multi-Server
- Using Fig and Flocker to build, test, deploy and migrate multi-server Dockerized apps
- A Docker based mini-PaaS by @prologic
Cloud Infrastructure
Good Tips
- 24 random docker tips by @csabapalfi
- GUI Apps with Docker by @fgrehm
- Automated Nginx Reverse Proxy for Docker by @jwilder
- Using NSEnter with Boot2Docker
- A Simple Way to Dockerize Applications by @jwilder
- Building good docker images by @jbergknoff
- 10 Things Not To Forget Before Deploying Docker In Production
- Make Your Docker Workflow Awesome With Fig.sh Fig is a python application that helps you run groups of docker containers.
- Docker CIFS – How to Mount CIFS as a Docker Volume
- Nginx Proxy for Docker (written 9 JUL 2015)
- Dealing with linked containers dependency in docker-compose by @rochacbruno
- Docker Tips by @jmervine
Newsletter
Continuous Integration
Optimizing Images
- Create the smallest possible Docker container
- Creating a Docker image from your code
- Optimizing Docker Images
- How to Optimize Your Dockerfile by @tutumcloud
- Building Docker Images for Static Go Binaries by @kelseyhightower
- Squashing Docker Images by @jwilder
- Dockerfile Golf (or optimizing the Docker build process)
- ImageLayers Visualize Docker images and the layers that compose them.
Service Discovery
- @progrium Service Discovery articles series:
- Consul Service Discovery with Docker
- Understanding Modern Service Discovery with Docker
- Automatic Docker Service Announcement with Registrator
Security
- Docker and SELinux
- Bringing new security features to Docker
- Docker Secure Deployment Guidelines
- Security Best Practices for Building Docker Images
- Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare
- Tuning Docker with the newest security enhancements
- Lynis is an open source security auditing tool including Docker auditing
- Understanding Docker security and best practices (written 5 MAY 2015)
Performances
- Performance Analysis of Docker on Red Hat Enterprise Linux 7
- Distrubuted JMeter testing using Docker
- nsinit: per-container resource monitoring of Docker containers on RHEL/Fedora
Raspberry Pi & ARM
- git push docker containers to linux devices Modern DevOps for IoT, leveraging git and docker.
- Docker Pirates ARMed with explosive stuff Huge resource on clustering, swarm, docker, pre-installed image for SD card on Raspberry Pi
- Docker on Raspberry Pi
- Fool-Proof Recipe: Docker on the Raspberry Pi Same article as above but more opinionated.
- Raspberry Pi with Docker 1.5.0
- Swarming Raspberry Pi – Part 1
- Swarming Raspberry Pi, Part 2: Registry & Mirror
- Swarming Raspberry Pi: Docker Swarm Discovery Options
- Uniform Development by Docker & QEMU
- Get Docker up and running on the RaspberryPi in four steps
- Installing, running, using Docker on armhf (ARMv7) devices
Other
- Presentation: Docker and JBoss - the perfect combination
- Vidéo
- Slides
- Code source
Books
- Docker Book by James Turnbul (@kartar)
- Docker Cookbook by Sébastien Goasguen (@sebgoa) (Publisher: O'Reilly)
- Docker Cookbook by Neependra Khare (@neependra) (Publisher: Packt)
- Docker in Action by Jeff Nickoloff (@allingeek)
- Docker in Practice by Ian Miell (@ianmiell) and Aidan Hobson Sayers (@aidanhs). ==> Website
- Docker Up & Running by Karl Matthias and Sean P. Kane
- Using Docker by Adrian Mouat (@adrianmouat)
- Docker: Container-Infrastruktur für Microservices (German) by Peter Roßbach (@PRossbach)
Tools
- Docker
- Docker Images
- Docker Compose (Define and run multi-container applications with Docker)
- Docker Machine (Machine management for a container-centric world)
- Docker Registry (The Docker toolset to pack, ship, store, and deliver content)
- Docker Swarm (Swarm: a Docker-native clustering system)
Dev Tools
- GoSu ("run this specific application as this specific user and get out of the pipeline" -- entrypoint script tool) by @tianon
- Chaperone ("A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package.) by @garywiz
- ns-enter (no more ssh, enter name spaces of container) by @jpetazzo
- Squid-in-a-can (in case of proxy problem) by @jpetazzo
- docker-gen (Generate files from docker container meta-data) by @jwilder
- dockerize (Utility to simplify running applications in docker containers) by @jwilder
- registrator (Service registry bridge for Docker) by @progrium
- Dockly (Dockly is a gem made to ease the pain of packaging an application in Docker.) by @swipely
- docker-volumes (Docker Volume Manager) by @cpuguy83
- dockerfile_lint (A rule-based 'linter' for Dockerfiles) by @redhataccess
- powerstrip (A tool for prototyping Docker extensions) by @clusterhq
- Vagga (Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments.) by @tailhook
- dockerode (Not just another Docker Remote API node.js module) by @apocas
- go-dockerclient (Go HTTP client for the Docker remote API.) by @fsouza
- container-factory (produces Docker images from tarballs of application source code http://www.containerfactory.io) by @lsqio
- percheron (Organise your Docker containers with muscle and intelligence) by @ashmckenzie
- crane (Lift containers with ease. Easy orchestration for images and containers) by @michaelsauter
- sherdock (Automatic GC of images based on regexp) by @rancherio
- bocker (1) (Docker implemented in 100 lines of bash) by p8952
- bocker (2) (Write Dockerfile completely in Bash. Extensible and simple. --> Reusable) by @icy
- docker-cli (A CLI with autocompletion and syntax highlighting for Docker commands.) by @j-bennet
- docker-gc (A cron job that will delete old stopped containers and unused images) by @spotify
- dlayer (Stats collector for Docker layers) by @wercker
- forward2docker (Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM) by @bsideup
- dockramp (Proof of Concept: A Client Driven Docker Image Builder) by @jlhawn
- portainer (Apache Mesos framework for building Docker images) by @tarnfeld
- Gradle Docker plugin a Docker remote api plugin for Gradle by @gesellix
- Docker client a Docker remote api client library for the JVM, written in Groovy by @gesellix
- [Dropdock][http://www.dropdock.io/] a framework designed for Drupal to build fast, isolated development environments using Docker.
- Devstep (Development environments powered by Docker and buildpacks) by @fgrehm
- Lorry (Lorry is a docker-compose.yml validator and composer) by @CenturyLinkLabs
- Dray (Dray is an engine for managing the execution of container-based workflows. Docker Workflow Engine - UNIX pipes for Docker) by @CenturyLinkLabs
- docker-do hassle-free docker run, like
env
but for docker
Continuous Integration / Continuous Delivery
- Drone - Continuous integration server built on Docker and configured using YAML files.
- Docker plugin for Jenkins - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave.
- Captain - Convert your Git workflow to Docker containers ready for Continuous Delivery by @harbur
- IBM DevOps Services - Continuous delivery using a pipeline deployment onto IBM Containers on Bluemix.
- Watchtower - Automatically update running Docker containers by @CenturyLinkLabs
Deployment
- Last.Backend - Last.Backend platform is designed for automatization of all routine work with the server and deployment of applications in one click using the visual interface.
- Conduit - Experimental deployment system for Docker by @ehazlett
- Zodiac - A lightweight tool for easy deployment and rollback of dockerized applications. By @CenturyLinkLabs
Hosting for repositories (registries)
Securely store your Docker images.
- Docker Hub (provided by Docker Inc.)
- Quay.io (part of CoreOS) - Secure hosting for private Docker repositories
- Reesd - Private Docker repositories and redundant storage service by @noteed
Hosting for containers
- Orchard (part of Docker Inc) - Get a Docker host in the cloud, instantly.
- StackDock - Docker hosting on blazing fast dedicated infrastructure
- Tutum - Simple hosting for your Docker containers.
- Giant Swarm - Simple microservice infrastructure. Deploy your containers in seconds.
- Triton - Elastic container-native infrastructure by Joyent.
- Amazon ECS - A management service on EC2 that supports Docker containers.
- Google Container Engine - Docker containers on Google Cloud Computing powered by Kubernetes.
- IBM Bluemix - Run Docker containers in a hosted cloud environment on IBM Bluemix.
Reverse Proxy
- nginx-proxy - Automated nginx proxy for Docker containers using docker-gen by @jwilder
- h2o-proxy - Automated H2O reverse proxy for Docker containers. An alternative jwilder/nginx-proxy by @zchee
- docker-proxy - Transparent proxy for docker containers, run in a docker container. By @silarsis
- muguet - DNS Server & Reverse proxy for Docker environments. By @mattallty
Web Interface
- Docker Registry Web (A web UI for easy private/local Docker Registry integration) by @atc-
- DockerUI (DockerUI is a web interface to interact with the Remote API.) by @crosbymichael
- DockerBoard (Simple dashboards, visualizations, managements for your dockers.) by @dockerboard
- Portus (Authorization service and frontend for Docker registry (v2)) by @SUSE
Local Container Manager
Fig (Fast, isolated development environments using Docker) -- http://www.fig.sh--> Fig has been replaced by Docker Compose, and is now deprecated. The new documentation is on the Docker website.- Shutit (a tool for building and maintaining complex Docker deployments) by @ianmiell
- FuGu (a docker run wrapper without orchestration) by @mattes
- Boot2Docker (docker for OSX and Windows) -- http://boot2docker.io/
- docker-vm (A simple and transparent alternative to boot2docker (backed by Vagrant)) by @shyiko
- Vessel (Vessel automates the setup & use of dockerized development environments) by @awvessel
- subuser (subuser makes it easy to securely and portably run graphical desktop applications in Docker)
- OctoHost (Simple web focused Docker based mini-PaaS server. git push to deploy your websites as needed) by @octohost
- Dokku (Docker powered mini-Heroku in around 100 lines of Bash) by @progrium
- Ansible - manage docker containers
- Vagrant - Docker provider a good starting point is vagrant-docker-example by @bubenkoff
- Dray An engine for managing the execution of container-based workflows. http://Dray.it by @CenturyLinkLabs
- percheron (Organise your Docker containers with muscle and intelligence) by @ashmckenzie
- Dusty Managed Docker development environments on OS X
Useful Images
- Official Images from Docker Hub
- Base Image by @phusion
- Busybox (with either
buildroot
or Ubuntu'sbusybox-static
) by @jpetazzo Busybox (with[@deprecated use docker-alpine instead]opkg
) by @progrium- OpenWRT by @zoobab
- Phusion Docker Hub Account
- passenger-docker (Docker base images for Ruby, Python, Node.js and Meteor web apps) by @phusion
- docker-alpine (A super small Docker base image (5MB) using Alpine Linux) by @gliderlabs
- docker-fluentd (the Container to Log Other Containers' Logs) by @kiyoto
- chaperone-docker (A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits.)
Dockerfile
- Dockerfile Project : Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container.
- Collection of Dockerfiles by @crosbymichael
- Dockerfile Example by @komljen
- Dockerfile Example 2 by @kstaken
- Dockerfile @jfrazelle by @jfrazelle MUST SEE for a fully containerized desktop!
Storing Images
Docker Registry (Registry server for Docker (hosting/delivering of repositories and images))deprecated- Docker Registry v2 (The Docker toolset to pack, ship, store, and deliver content)
- Rescoyl (Private Docker registry) by @noteed
Monitoring
- Axibase Time-Series Database (Long-term retention of container statistics and built-in dashboards for Docker. Collected with native Google cAdvisor storage driver.)
- cAdvisor (Analyzes resource usage and performance characteristics of running containers. created by @Google
- Dockerana (packaged version of Graphite and Grafana, specifically targeted at metrics from Docker.)
- Docker-mon (Console-based Docker monitoring) by @icecrime
- InfluxDB, cAdvisor, Grafana (InfluxDB Time series DB in combination with Grafana and cAdvisor) by @vegasbrianc
- Prometheus (Open-source service monitoring system and time series database)
- Ruxit Monitor containerized applications without installing agents or modifiying your Run commands
- Seagull (Friendly Web UI to monitor docker daemon.) by @tobegit3hub
- Sysdig: An open source troubleshooting tool that provides a rich set of real-time, system-level information. It has container-specific features and is very useful in Docker environments.
- Zabbix Docker module: 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.
- SPM for Docker Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. @sematext
Networking
- Weave (The Docker network) -- Weave creates a virtual network that connects Docker containers deployed across multiple hosts.
Logging
- LogJam (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 collecton server (such as logstash).) by @gocardless
- Docker-Fluentd: (Docker container to Log Other Containers' Logs. One can aggregate the logs of Docker containers running on the same host using Fluentd.) by @kiyoto
- Logspout (Log routing for Docker container logs) by @gliderlabs
- SPM for Docker Monitoring of Metrics, Events and Logs implemented in Node.js. Integrated logagent-js to detect and parse various log formats. @sematext
Deployment and Infrastructure
- Centurion: 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
- Clocker: 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. It leverages Weave for networking and [Brooklyn][boorklyn] for application blueprints. By @brooklyncentral
- Cloud 66 - Full-stack hosted container management as a service
- Docket: Custom docker registry that allows for lightning fast deploys through bittorrent by @netvarun
- Longshoreman: 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
PaaS
- Dokku (Docker powered mini-Heroku in around 100 lines of Bash) by @progrium
- Tsuru (Tsuru is an extensible and open source Platform as a Service software.) -- https://tsuru.io/
- Flynn (A next generation open source platform as a service) -- https://flynn.io/
- Deis (Your PaaS, your rules) -- http://deis.io/
Remote Container Manager / Orchestration
- Kontena (Application Containers for Masses) -- http://kontena.io
- Kubernetes (Open source orchestration system for Docker containers by Google) -- http://kubernetes.io
- Shipyard (Composable Docker Management) -- http://shipyard-project.com/
- Panamax (Docker Management for Humans) -- http://panamax.io/
Gaudi (Gaudi allows to share multi-component applications, based on Docker, Go, and YAM) -- http://gaudi.io/project discontinued.- CoreOS (Linux for Massive Server Deployments) -- https://coreos.com/
- Rancher (Portable AWS-style infrastructure service for Docker) -- http://www.rancher.io/
- dokku-alt (Dokku fork with Dockerfile support, database plugins, ACL and more)
- Docker container on Mesos (Docker plus Mesosphere provides an easy way to automate and scale deployment of containers in a production environment)
- Marathon (Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on")
- Serf (Service orchestration and management tool) by @hashicorp
- Flocker (Flocker is a data volume manager and multi-host Docker cluster management tool) by @ClusterHQ
- Decking: (Decking aims to simplify the creation, organsation and running of clusters of Docker containers in a way which is familiar to developers)
- Maestro (Maestro provides the ability to easily launch, orchestrate and manage mulitiple Docker containers as single unit) by @tascanini
- Citadel (Citadel is a toolkit for scheduling containers on a Docker cluster)
- CloudSlang (CloudSlang is a workflow engine to create Docker process automation)
- autodock (Daemon for Docker Automation) by @prologic
- blimp 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
Security
- docker-bench-security script that checks for dozens of common best-practices around deploying Docker containers in production. By @docker
- notary a server and a client for running and interacting with trusted collections. By @docker
Service Discovery
- docker-consul by @progrium
- etcd: A highly-available key value store for shared configuration and service discovery by @coreOS
- Docker Grand Ambassador This is a fully dynamic docker link ambassador. + Article by @cpuguy83
- confd: Manage local application configuration files using templates and data from etcd or consul.
- proxy: lightweight nginx based load balancer self using service discovery provided by registrator. by @factorish
Slides
Videos
Main Account
- Docker Youtube Account
- CenturyLink Labs Docker Interviews
- YLD Event Conference about containers!!! @YLDio
Useful videos
- Docker for Developers (54:26) by @jpetazzo <== Good introduction, context, demo
- SysAdminCasts: Introduction to Docker (15:49)
- Orchestrating Docker containers in production using Fig (7:11)
- Development Environments with Fig by Aanand Prasad (17:58)
- Docker in Production by @jpetazzo (36:05)
- Docker: How to Use Your Own Private Registry (15:01)
- Contributing to Docker by Andrew "Tianon" Page (InfoSiftr) (34:31)
- Performance Analysis of Docker - Jeremy Eder (1:36:58)
- Docker and SELinux by Daniel Walsh from Red Hat (40:23)
- Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt) (42:04)
- Ansible and Docker HP (32:38)
- Run Any App on Mesos on Any Infrastructure Using Docker (17:44)
- Extending Docker with Plugins (15:21)
- Logging on Docker: What You Need to Know (51:27)
- Container Hacks and Fun Images by @jfrazelle @ DockerCon 2015 (MUST WATCH VIDEO: 38:50)
Interesting Twitter Accounts
People
- Solomon Hykes Founder of Docker
- Gabriel Monroy Creator of Deis
- Jérôme Petazzoni Docker Developer
- Michael Crosby Docker Developer
- James Turnbull Author of Docker Book
- Jeff Lindsay Design-minded software architect
- Jessie Frazelle Work @docker and uses full containerized desktop, lots of fun.