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.
For installing swarm for using in your environment, use the Docker Swarm documentation on docs.docker.com.
Developers should always download and install from source rather than using the Docker image.
- Beginning with Swarm 0.4 golang 1.4.x or later is required for building Swarm. Refer to the Go installation page to download and install the golang 1.4.x or later package.
Note: On Ubuntu 14.04, the
apt-get
repositories install golang 1.2.1 version by default. So, do not useapt-get
but install golang 1.4.x manually using the instructions provided on the Go site.
Note
GOPATH
should be set when install godep in above step.
Install the swarm
binary in the $GOPATH/bin
directory. An easy way to do this
is using the go get
command.
$ go get github.com/docker/swarm
You can also do this manually using the following commands:
$ mkdir -p $GOPATH/src/github.com/docker/
$ cd $GOPATH/src/github.com/docker/
$ git clone https://github.com/docker/swarm
$ cd swarm
$ $GOPATH/bin/godep go install .
Then you can find the swarm binary under $GOPATH/bin
.
From here, you can follow the instructions in the main documentation,
replacing docker run swarm
with just swarm
.
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 © 2014-2015 Docker, Inc. All rights reserved, except as follows. Code is released under the Apache 2.0 license. The README.md file, and files in the "docs" folder are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file "LICENSE.docs". You may obtain a duplicate copy of the same license, titled CC-BY-SA-4.0, at http://creativecommons.org/licenses/by/4.0/.