Skip to content

An ongoing curated list of awesome frameworks, important books, articles, talks, libraries, learning tutorials, best practices and technical resources about Docke

License

Notifications You must be signed in to change notification settings

veilair/docker-development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Development

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!

What is Docker?

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.

containers

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.

images

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.

dockers-running

Running Docker provides developers and admins a highly reliable, low-cost way to build, ship, and run distributed applications at any scale.

docker

Where to start ?

Table of Contents


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

  • 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.

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.

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.

HTTP Reverse Proxy

Web Interface

Local Container Manager

Useful Images

Dockerfile

Storing Images

Monitoring

  • 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.

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).)
  • 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

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.
  • 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.

PaaS

Remote Container Manager / Orchestration

  • 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

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.
  • proxy: lightweight nginx based load balancer self using service discovery provided by registrator. by @factorish

Slides

Videos

Main Account

Useful videos

Interesting Twitter Accounts

People

Licenses

License

CC0

To the extent possible under law, Veilair has waived all copyright and related or neighboring rights to this work.

Back to top