20 KiB
Awesome Docker
A curated list of Docker resources
Inspired by @sindresorhus' awesome
This list is not exhaustive, contribute to make it so: add your docker resource by forking / sending pull requests.
Please, help organize these resources so that they are easy to find and understand for new comers. See how to Contribute
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.
MENU
- Useful Articles
- Main Resources
- General Articles
- Deep Dive
- Metal
- Multi-Server
- Good Tips
- Continuous Integration
- Optimizing Images
- Service Discovery
- Security
- Performances
- Other
- Books
- Tools
- Slides
- Videos
- Interesting Twitter Accounts
Useful Articles
Main Resources
- Docker Weekly Huge resource
- Century Links Labs
- Valuable Docker Links Very complete
- Docker Ecosystem (Mind Map) MUST SEE
- Blog of @jpetazzo
- Blog of @progrium
- Blog of @jwilder
- Blog of @crosbymichael
- Digital Ocean Community
- Container42
- Contrainer solutions
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
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
Metal
Multi-Server
- 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
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.
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)
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
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
Other
- Presentation: Docker and JBoss - the perfect combination
- Vidéo
- Slides
- Code source
Books
- Docker Book by James Turnbul (@kartar)
Tools
Continous Integration / Continous Delivery
Hosting for repositories (registries)
- 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.
Dev Tools
- Fig (Fast, isolated development environments using Docker) -- http://www.fig.sh
- Shutit (a tool for building and maintaining complex Docker deployments) by @ianmiell
- FuGu (a docker run wrapper without orchestration) by @mattes
- 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
- Boot2Docker (docker for OSX and Windows) -- http://boot2docker.io/
- OctoHost (Simple web focused Docker based mini-PaaS server. git push to deploy your websites as needed) by @octohost
- Dockly: Dockly is a gem made to ease the pain of packaging an application in Docker.
Useful Images
- Base Image by @phusion
- Busybox (with either
buildroot
or Ubuntu'sbusybox-static
) by @jpetazzo - Busybox (with
opkg
) by @progrium - DockerFile Example by @komljen
- OpenWRT by @zoobab
- Phusion Docker Hub Account
Docker Files
- 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
Storing Images
- Docker Registry (Registry server for Docker (hosting/delivering of repositories and images))
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
Monitoring
- Seagull (Friendly Web UI to monitor docker daemon.)
- Dockerana (packaged version of Graphite and Grafana, specifically targeted at metrics from Docker.)
Running Containers / Orchestration
- Shipyard (Composable Docker Management) -- http://shipyard-project.com/
- Panamax (Docker Management for Humans) -- http://panamax.io/
- Flynn (A next generation open source platform as a service (PaaS)) -- https://flynn.io/
- Deis (Your PaaS, your rules) -- http://deis.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 (Docker powered mini-Heroku in around 100 lines of Bash) by @progrium
- dokku-alt (Dokku fork with Dockerfile support, database plugins, ACL and more)
- cAdvisor (Analyzes resource usage and performance characteristics of running containers)
- Ansible - manage docker containers
- Launch 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".)
- SerfService 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 mulitple Docker containers as single unit.
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).)
Service Discovery
- 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.
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.
- 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.
- 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.
Slides
Videos
Main Account
- Docker Youtube Account
- CenturyLink Labs Docker Interviews
- YLD Event Conference about containers!!! @YLDio
Useful videos
- 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)
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