Skip to content

liudch/swarm

 
 

Repository files navigation

Swarm: a Docker-native clustering system Build Status

Docker Swarm Logo

swarm is a simple tool which controls a cluster of Docker hosts and exposes it as a single "virtual" host.

swarm uses the standard Docker API as its frontend, which means any tool which speaks Docker can control swarm transparently: dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins... and of course the Docker client itself.

Like the other Docker projects, swarm follows the "batteries included but removable" principle. It ships with a simple scheduling backend out of the box. The goal is to provide a smooth out-of-box experience for simple use cases, and allow swapping in more powerful backends, like Mesos, for large scale production deployments.

Installation

######1 - Download the current source code.

go get github.com/docker/swarm

######2 - Compile and install swarm

go install github.com/docker/swarm

######3 - Nodes setup The only requirement for Swarm nodes is to run a regular Docker daemon.

In order for Swarm to be able to communicate with its nodes, they must bind on a network interface. This can be achieved by starting Docker with the -H flag (e.g. -H 0.0.0.0:2375).

Currently, nodes must be running the Docker master version. Master binaries are available here: https://master.dockerproject.com/

Example usage

# create a cluster
$ swarm create
6856663cdefdec325839a4b7e1de38e8

# on each of your nodes, start the swarm agent
$ swarm join --token=6856663cdefdec325839a4b7e1de38e8 --addr=<docker_daemon_ip1:4243>
$ swarm join --token=6856663cdefdec325839a4b7e1de38e8 --addr=<docker_daemon_ip2:4243>
$ swarm join --token=6856663cdefdec325839a4b7e1de38e8 --addr=<docker_daemon_ip3:4243>
...

# start the manager on any machine or your laptop
$ swarm manage --token=6856663cdefdec325839a4b7e1de38e8 --addr=<swarm_ip:4243>

# use the regular docker cli
$ docker -H <swarm_ip:4243> info
$ docker -H <swarm_ip:4243> run ... 
$ docker -H <swarm_ip:4243> ps 
$ docker -H <swarm_ip:4243> logs ...
...

# list nodes in your cluster
$ swarm list --token=6856663cdefdec325839a4b7e1de38e8
http://<docker_daemon_ip1:4243>
http://<docker_daemon_ip2:4243>
http://<docker_daemon_ip3:4243>

Participating

We welcome pull requests and patches; come say hi on IRC, #docker-swarm on freenode.

Creators

Andrea Luzzardi

Victor Vieux

Copyright and license

Code and documentation copyright 2014 Docker, inc. Code released under the Apache 2.0 license. Docs released under Creative commons.

About

Swarm: a Docker-native clustering system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.0%
  • Shell 2.0%