"Container management for the unemployed".
NOTE: As of 2015-03-29, this does not work and is just a theory. Hit me up if you have questions about development or helping out (or just send a pull request or file issues).
natroku is actually three pieces of software (router, configd, dbc), each contained in a subdirectory of this repo. The idea is this system could run all on a single host, or spread out across many.
The router is pretty simple. Given a request on port 80 (or whatever port you want) it looks at its configuration and forwards that on to a Docker container described as the source for the domain the request is for. Currently it only supports HTTP. If user visits raw IP, return 410.
A polling server that uses Git as a database. It looks at all of the containers it knows about and writes out a config that represents the state of the world as it knows it. If the config has changed, it sends a notification to the router and dbc to reread their configuration.
This acts like the router, but instead acts on database requests, specifically postgresql connections.
This is a heavily evolving area, I pulled a lot of this from Stack Overflow and a random mindmap.
So if you look at a lot of the solutions, like Mesos, Kubernetes, Decking, Helios, Flynn, Lattice, CoreOS and Deis, they all require a ton of resources.
Below I'm going to try and break down the features and minimum footprint needed for each.