An ongoing curated list of awesome frameworks, important books, articles, talks, libraries, learning tutorials, best practices and technical resources about Docker. Thanks to our daily readers and contributors. The goal is to build a categorized community-driven collection of very well-known resources. Sharing, suggestions and contributions are always welcome!
The word "Docker" refers to several things, including an open source community project; tools from the open source project; Docker Inc., the company that primarily supports that project; and the tools that company formally supports. The fact that the technologies and the company share the same name can be confusing.
Here's a brief explainer:
- The IT software "Docker” is containerization technology that enables the creation and use of Linux® containers.
- The open source Docker community works to improve these technologies to benefit all users.
- The company, Docker Inc., builds on the work of the Docker community, makes it more secure, and shares those advancements back to the greater community. It then supports the improved and hardened technologies for enterprise customers. With Docker, you can treat containers like extremely lightweight, modular virtual machines. And you get flexibility with those containers—you can create, deploy, copy, and move them from environment to environment, which helps optimize your apps for the cloud.
Docker is a software platform that allows you to build, test, and deploy applications quickly.
Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. Using Docker, you can quickly deploy and scale applications into any environment and know your code will run.
Running Docker provides developers and admins a highly reliable, low-cost way to build, ship, and run distributed applications at any scale.
- 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 Boot2Docker It works on Windows and OSX
- Install Kitematic Nice GUI, works on OSX
- 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)
- 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
- Other
- Books
- Tools
- Dev Tools
- Continuous Integration / Continuous Delivery
- Deployment
- Hosting for repositories (registries)
- Hosting for containers
- HTTP 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
- Docker Weekly Huge resource
- Docker Cheat Sheet by @wsargent MUST SEE
- Century Links 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)
- 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)
- 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
- 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)
- Using Fig and Flocker to build, test, deploy and migrate multi-server Dockerized apps
- 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
- 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
- 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)
- @progrium Service Discovery articles series:
- Consul Service Discovery with Docker
- Understanding Modern Service Discovery with Docker
- Automatic Docker Service Announcement with Registrator
- 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)
- 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
- 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
- Presentation: Docker and JBoss - the perfect combination
- Vidéo
- Slides
- Code source
- 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)
- 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)
- GoSu ("run this specific application as this specific user and get out of the pipeline" -- entrypoint script tool) by @tianon
- 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)
- 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
- Conduit (Experimental deployment system for Docker.) by @ehazlett
- 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)
- bocker (1) (Docker implemented in 100 lines of bash) by p8952 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
- 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.
- IBM DevOps Services - Continuous delivery using a pipeline deployment onto IBM Containers on Bluemix.
- 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.
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
- 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.
- 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 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
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))
- Vessel (Vessel automates the setup & use of dockerized development environments)
- 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
- Base Image by @phusion
- Busybox (with either
buildroot
or Ubuntu'sbusybox-static
) by @jpetazzo - Busybox (with
opkg
) by @progrium [@deprecated use docker-alpine instead] - 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
- 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!
Docker Registry (Registry server for Docker (hosting/delivering of repositories and images))- Docker Registry v2 (The Docker toolset to pack, ship, store, and deliver content)
- Rescoyl (Private Docker registry) by @noteed
- Seagull (Friendly Web UI to monitor docker daemon.)
- Dockerana (packaged version of Graphite and Grafana, specifically targeted at metrics from Docker.)
- Docker-mon (Console-based Docker monitoring) by @icecrime
- 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.
- Weave (The Docker network) -- Weave creates a virtual network that connects Docker containers deployed across multiple hosts.
- 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).)
- Docker-Fluentd: Docker container to Log Other Containers' Logs. One can aggregate the logs of Docker containers running on the same host using Fluentd.
- Logspout (Log routing for Docker container logs) by @gliderlabs
- 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.
- 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.
- 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.
- 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/
-
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/
-
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)
-
cAdvisor (Analyzes resource usage and performance characteristics of running containers)
-
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.)
-
Citadel (Citadel is a toolkit for scheduling containers on a Docker cluster.)
-
CloudSlang (CloudSlang is a workflow engine to create Docker process automation)
-
autodock (Automating Docker; also provides A Docker based mini-PaaS
- docker-consul by @progrium
- etcd: A highly-available key value store for shared configuration and service discovery
- Docker Grand Ambassador This is a fully dynamic docker link ambassador. + Article
- 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
- Docker Youtube Account
- CenturyLink Labs Docker Interviews
- YLD Event Conference about containers!!! @YLDio
- 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)
- 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.
License
To the extent possible under law, Veilair has waived all copyright and related or neighboring rights to this work.