Docker

Docker uses LXC to create and manage native, sandboxed virtual containers. LXC containers acts like a separate OSes, can install their own packages without affecting anything else, and overall have almost the same flexibility of VMs but without any of the virtualization overhead! Docker adds a ton of features, like an elegant configuration file that automates many things (like port forwarding, disk/directory mounting, networking, etc), a way to create and share readymade images that can be distributed as appliances, etc.

     

linux open-source virt cloud-paas provisioning go

Kubernetes

Kubernetes is a system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications

     

linux open-source virt orchestration go

LXD

LXD is a next generation system container manager. It offers a user experience similar to virtual machines but using Linux containers instead. It's image based with pre-made images available for a wide number of Linux distributions and is built around a very powerful, yet pretty simple, REST API.

     

linux open-source virt cloud-paas provisioning go

Serf

Serf is a service discovery and orchestration tool which is highly decentralized, highly available, fault tolerant, cross platform and extremely lightweight.

     

linux windows osx open-source orchestration go

Weave

Weave creates a virtual network that connects Docker containers deployed across multiple hosts. Services provided by application containers on the weave network can be made accessible to the outside world, regardless of where those containers are running. Similarly, existing internal systems can be exposed to application containers irrespective of their location.

     

linux open-source virt cloud-paas orchestration service-discovery go