Swarm: a Docker-native clustering system
Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual host.
Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Flynn, Deis, DockerUI, Shipyard, Drone, Jenkins... and, of course, the Docker client itself.
Like other Docker projects, Swarm follows the "batteries included but removable" principle. It ships with a set of simple scheduling backends out of the box, and as initial development settles, an API will be developed to enable pluggable backends. The goal is to provide a smooth out-of-the-box experience for simple use cases, and allow swapping in more powerful backends, like Mesos, for large scale production deployments.
Installation and documentation
Full documentation is available here.
You can download and install from source instead of using the Docker image. Ensure you have golang, godep and the git client installed.
For example, on Ubuntu you'd run:
$ apt-get install golang git $ go get github.com/tools/godep
You may need to set
mkdir ~/gocode; export GOPATH=~/gocode.
For example, on Mac OS X you'd run:
$ brew install go $ export GOPATH=~/go $ export PATH=$PATH:~/go/bin $ go get github.com/tools/godep
Then install the
$ mkdir -p $GOPATH/src/github.com/docker/ $ cd $GOPATH/src/github.com/docker/ $ git clone https://github.com/docker/swarm $ cd swarm $ godep go install .
From here, you can follow the instructions in the main documentation,
docker run swarm with just
You can contribute to Docker Swarm in several different ways:
If you have comments, questions, or want to use your knowledge to help others, come join the conversation on IRC. You can reach us at #docker-swarm on Freenode.
To report a problem or request a feature, please file an issue
Of course, we welcome pull requests and patches. For information on making feature requests, follow the process suggested here.
Finally, if you want to see what we have for the future and learn more about our release cycles, all this information is detailed on the wiki
Copyright and license
Code and documentation copyright 2014-2015 Docker, inc. Code released under the Apache 2.0 license.
Docs released under Creative commons.
There is no documentation for this package.
The uuid package generates and inspects UUIDs.
|The uuid package generates and inspects UUIDs.|
Package cli provides a minimal framework for creating and organizing command line Go applications.
|Package cli provides a minimal framework for creating and organizing command line Go applications.|
Package libkv provides a Go native library to store metadata.
|Package libkv provides a Go native library to store metadata.|
Package proto converts data structures to and from the wire format of protocol buffers.
|Package proto converts data structures to and from the wire format of protocol buffers.|
Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.
|Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.|
Package context stores values shared during a request lifetime.
|Package context stores values shared during a request lifetime.|
Package gorilla/mux implements a request router and dispatcher.
|Package gorilla/mux implements a request router and dispatcher.|
The detector package houses implementation of master detectors.
|The detector package houses implementation of master detectors.|
Zookeeper-based mesos-master leaderhip detection.
|Zookeeper-based mesos-master leaderhip detection.|
Package mesosproto is a generated protocol buffer package.
|Package mesosproto is a generated protocol buffer package.|
Package messenger includes a messenger and a transporter.
|Package messenger includes a messenger and a transporter.|
Package testmessage is a generated protocol buffer package.
|Package testmessage is a generated protocol buffer package.|
Package scheduler includes the interfaces for the mesos scheduler and the mesos executor driver.
|Package scheduler includes the interfaces for the mesos scheduler and the mesos executor driver.|
Package upid defines the UPID type and some utilities of the UPID.
|Package upid defines the UPID type and some utilities of the UPID.|
objx - Go package for dealing with maps, slices, JSON and other data.
|objx - Go package for dealing with maps, slices, JSON and other data.|
Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.
|Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.|
Provides a system by which it is possible to mock your objects and verify calls are happening as expected.
|Provides a system by which it is possible to mock your objects and verify calls are happening as expected.|
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
|Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.|