Skip to content

About

Build serverless apps with Docker

Topics

Resources

Stars

307 stars

Watchers

31 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Serverless Docker

Swarm makes it incredibly easy to run code on your infrastructure. You wrap some code up inside a Docker container, and Swarm will make it run on whatever free resources you have.

But what if those containers could also run other containers on a Swarm? We could put pieces of our application inside containers that are run on-demand on a Swarm. Docker containers can be used as functions from within other applications:

>>> import dockerrun
>>> client = dockerrun.from_env()
>>> client.run("bfirsh/leftpad", ["foo", "5"])
'  foo\n'

Take, for example, running background tasks in a web app. In a traditional architecture, you would have a set of task workers and a message queue to pass work from the web frontends to the task workers.

If your web frontends have access to a Swarm, you can run the task directly on your Swarm:

client.run("tasks/reticulate-splines", detach=True)

To read more about this, check out this blog post.

Examples

## Reading

Tools

  • Funker – Functions as Docker containers
  • go-dcgi – CGI, but with Docker containers

## Client libraries

  • docker-py – Run Docker containers from Python apps
  • dockerrun – A simpler interface for running Docker containers in Python (soon to be part of docker-py)
  • go-dexec – Like Go os/exec package but for Docker
  • dockerode – Run Docker containers from Node.js apps
  • docker-java – Run Docker containers from Java apps

Stuff that needs working on

We need your help!

  • Make this work with Docker 1.12.
  • A proxy that scopes a Docker API so that containers can securely manage and run "child" containers.
  • Helpers for injecting the Docker API socket into containers that are run.
  • A server for running scheduled / cron jobs as Docker containers on a Swarm.

About

Build serverless apps with Docker

Topics

Resources

Stars

307 stars

Watchers

31 watching

Forks

Releases

Packages

Contributors