Skip to content

Latest commit

 

History

History
176 lines (135 loc) · 17.3 KB

awesome-containers.md

File metadata and controls

176 lines (135 loc) · 17.3 KB

Open Source Container Resources

A curated list of amazingly awesome open source container resources.

Table of Contents

Spec

  • App Container (appc) - Specification for application containers. Appc defines several independent but composable aspects involved in running application containers, including an image format, runtime environment, and discovery mechanism for application containers.
  • Nulecule - A container based app specification that enables the use of existing containers as building blocks for new applications.
  • Opencontainers/specs - Specifications for standards on Operating System process and application containers.

Containers and Runtimes

  • Docker - Pack, ship and run any application as a lightweight container.
  • Docker Engine - A lightweight runtime and tooling that builds and runs your docker containers.
  • Garden - A platform-agnostic Go API for container creation and management, with pluggable backends for different platforms and runtimes.
  • Jetpack - An experimental and incomplete implementation of the App Container Specification for FreeBSD. It uses jails as isolation mechanism, and ZFS for layered storage.
  • libct - Libct is a containers management library which provides convenient API for frontend programs to rule a container during its whole lifetime.
  • lmctfy - lmctfy is the open source version of Google’s container stack, which provides Linux application containers.
  • LXC - A set of tools, templates, library and language bindings. Its pretty low level, very flexible and covers just about every containment feature supported by the upstream kernel.
  • LXD - A REST API, command line tool and OpenStack integration plugin for LXC.
  • mbox - A lightweight sandboxing mechanism that any user can use without special privileges in commodity operating systems.
  • MINCS - A collection of shell scripts for light-weight containers.
  • nosecone - A C++ App Container implementation that uses the libappc App Container library.
  • OpenVZ - Container-based virtualization for Linux.
  • Rkt - A CLI for running app containers on Linux. rkt is designed to be composable, secure, and fast. Based on AppC specification.
  • runc - runc is a CLI tool for spawning and running containers according to the OCS specification.
  • systemd-nspawn
  • Vagga - A fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments.
  • warden - Manages isolated, ephemeral, and resource controlled environments.
  • zerovm - A simple virtual machine that can run (and isolate) 64-bit x86 applications in a 32-bit address space. ZeroVM works under Linux x86_64.

Development and Deployment Tools

  • Brooklyn - A library and control plane for deploying and managing distributed applications.
  • Centurion - A deployment tool for docker. Ships containers to/from a registry, running them on a fleet of hosts.
  • Chronos - A distributed and fault-tolerant scheduler that runs on top of Mesos that can be used for job orchestration. Able to schedule jobs that run inside Docker containers.
  • Cloudbreak - Cloudbreak helps users launch on-demand Hadoop clusters in the cloud or to any environment that supports Docker containers.
  • Codefresh - Combines Docker tools with a web IDE based on Eclipse Orion. A complete development environment for Node.js with DevOps and QA teams.
  • Decking.io - Aims to simplify three core areas: building images based on local Dockerfiles, creating containers and orchestration of containers. originally alternative to Fig, now Docker compose.
  • Docker Compose - Compose is a tool for defining and running multi-container applications with Docker.
  • Docker Hub - A cloud registry service for building and shipping application or service containers. It provides a centralised resluce for container image discovery, distribution and change management.
  • Docker Machine - Lets you create docker hosts on your computer.
  • Dockersh - A login shell for machines with multiple users, it gives access to multiple users but allows for isolation between them.
  • Dusty - A development environment that provides OS X support for containers. Compares the tool to Vagrant and says it uses Docker Compose to orchestrate containers.
  • Fabric8 - An open source DevOps and Integration platform that is built as a set of microservices that run on top of Kubernetes and OpenShift v3.
  • Ferry - A big data development environment. Lets you define, run and deploy big data applications on AWS, OpenStack and your local machine using Docker.
  • Lorry - A Centurylink Cloud Utility and open source project that provides a graphical user interface for Docker compose YAML validation and composition.
  • Mantl - An opensource platform for rapidly deloying globally distributed services. It works with tools such as Marathon, Mesos, Docker and Consul.
  • Packer - A tool for creating machine and container images for multiple platforms from a single source configuration.
  • Panamax - A containerized app creator with an open source app marketplace hosted on github. Provides an interface for users of Docker, Fleet, CoreOS.
  • Powerstrip - A tool for prototyping Docker extensions.
  • Shutit - A tool for managing the Docker image building process, it expands on some of the capabilites of Dockerfiles.
  • Terraform - A tool to build and launch infrastructure, including containers.
  • Totem - A continuous delivery pipeline tool designed for microservices.
  • Vessel - Automates the setup and use of dockerized development environments. It requires both OS X and Vagrant to work properly.
  • Zodiac - A lightweight tool, build on top of Docker compose, for easy deployment and rollback of Dockerized applications.

OS and Platforms

  • Boot2docker - A lightweight linux distribution made specifically to run Docker containers. Intended to use with Docker Machine.
  • CoreOS - A container-focused OS, designed for painless management in large clusters.
  • Project Atomic - Hosts run applications in Docker Containers with components based on RHEL, Fedora and CentOS.
  • Project Photon - A linux container host, focused on running containerized applications in a virtualised environmemt.
  • RancherOS - A 20MB Linux distro that runs the entire OS as Docker containers.
  • Project Photon - A linux container host, focused on running containerized applications in a virtualised environmemt.
  • Snappy Ubuntu Core - Perfect system for large-scale cloud container deployments, bringing transactional updates to the world’s favourite container platform.

Orchestration and Cluster Management

  • BOSH - An open source toolchain for orchestration of large distributed services that can be used with Docker containers. BOSH installs and updates software packages on large numbers of VMs over many IaaS providers.
  • Brooklyn - A library and control plane for deploying and managing distributed applications.
  • Chronos - A distributed and fault-tolerant scheduler that runs on top of Mesos that can be used for job orchestration. Chronos is natively able to schedule jobs that run inside Docker containers
  • Cloud Foundry Containers Service Broker - Allows users to provision services that runs inside a compatible container backend and bind applications to the service.
  • Cloud Foundry Lattice - An open source project for running containerized workloads on a cluster. Lattice bundles up HTTP load balancing, a cluster scheduler, log aggregation and streaming and health management into an easy-to-deploy and easy-to-use package
  • CloudSlang - A flow-based orchestration tool for managing deployed applications. It aims to automate DevOps workflows and offers Docker capabilities and integrations
  • Consul - A tool for service discovery and configuration. Consul is distributed, highly available and extremely scalable.
  • Crane - A lightweight wrapper around the Docker CLI that is used to orchestrate Docker containers.
  • Docker Swarm - Offers native clustering for Docker by turning multiple Docker hosts into a single, virtual host.
  • Dray - An engine for managing the execution of container based workflows. It is Go application that provides a RESTful API for managing jobs and is most commonly used fo containers hosting long running services.
  • etcd - A distributed, consistent key-value store for shared configuration and service discovery.
  • Fleet - A distributed init system used to support cluster management and orchestration of containers.
  • Flocker - A data volume manager for Dockerized applications.
  • ImageLayers - Allows Docker users to easily discover best practices for image construction, and aids in determining which images are most appropriate for their specific use cases.
  • Kitematic - A graphic interface to manage Docker.
  • Kong - A management layer for APIs. It has the capability of orchestrating Dockerfiles.
  • Kontena - A container orchestration tool. Abstracts containers into application services and establishes an internal network between linked services, making it easy to deploy and scale applications across multiple hosts.
  • Kubernetes - An open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.
  • MaestroNG - An Orchestrator for Docker based, multi-host environments.
  • Magnum - An OpenStack project which offers container orchestration engines for deploying and managing containers as first class resources in OpenStack.
  • Marathon - An Apache Mesos framework for long running applications. Provides a REST API for starting, stopping and scaling applications. It lets users deploy, run and scale Docker containers.
  • Mesos - A cluster manager that provides efficient resource isolation and sharing across distributed applications or frameworks.
  • Panamax - A containerized app creator. Provides a friendly interface for users of Docker, Fleet & CoreOS.
  • Percheron - Used to manage image and containers.
  • Prometheus - An opensource service monitoring system and time series database.
  • Shipyard - Enables multihost Docker cluster management and is fully compatible with the Docker remote API.
  • Tectonic - A platform combining Kubernetes and the CoreOS stack.

Networking

  • Flannel - A virtual network for hosting containers
  • Libnetwork - Provides a native Go implementation for connecting containers.
  • Project Calico - Provides Networking for OpenStack VMs as well as containers in a Docker environment. Each container gets its own IP and Security policy.
  • Weave - A container specific implementation of software defined networking across data centers.
  • Wormhole - A namespace-aware socket-activated tunneling proxy. Allows you to securely connect ports together on different physical machines inside docker containers.

Monitoring

  • cAdvisor - Provides container users an understanding of the resource usage and performance characteristics of running containers.
  • Cloud Foundry Diego - Supports the scheduling and monitoring of Docker workloads.

PaaS

  • Cloud Foundry - An open platform as a service (PaaS) that provides a choice of clouds, developer frameworks, and application services. Cloud Foundry makes it faster and easier to build, test, deploy, and scale applications.
  • Deis - A lightweight, open source PaaS, built on Docker and CoreOS, that makes it easy to deploy and manage applications on your servers.
  • dokku - A mini-PaaS inspired by Herokus workflow.
  • Flynn - A micro PaaS built on Docker containers and optimized for service-oriented applications.
  • OpenShift v3 - A PaaS built on Docker containers that orchestrates with Kubernetes. Includes Atomic and Red Hat Linux components.
  • Zenoss Control Center - A PAAS framework for deploying enterprise applications using docker.

Hosting

Private Container Image Registry

Security

  • CoreOS Clair - Open Source Vulnerability Analysis for containers.
  • Docker bench security - A script that checks for dozens of common best-practices around deploying Docker containers in production.
  • Notary - Comprises a server and a client for running and interacting with trusted collections. Publishers can sign their content offline using highly secure keys.

Infrastructure Services

  • Clocker - Create and manages a Docker Cloud infrastructure. Includes plugins for Project Calico and Weave.
  • Crate - Uses SQL syntax for distributed queries across a cluster.
  • Pachydem - Enables storage and analysis of data using containers.
  • Portus - Acts both as an authorization server and as a user interface for Docker registry.
  • Registrator - Automatically registers and deregisters services for any Docker container. Supports pluggable service registries like consul and etcd.