Swarm: a Docker-native clustering system
Go Shell Groff
Latest commit c0b4734 Jan 20, 2017 @nishanttotla nishanttotla committed on GitHub Merge pull request #2602 from realab/fix-event-response-stop
fix /event response stop immediately
Failed to load latest commit information.
.github Added issue template to direct users to right repo Jun 27, 2016
Godeps update go-zookeeper to rev 1d7be4e Jan 6, 2017
api Merge pull request #2602 from realab/fix-event-response-stop Jan 20, 2017
cli Add an option to refresh the containers cache on certain ContainerLis… Jan 17, 2017
cluster Merge pull request #2600 from wsong/use_network_name Jan 20, 2017
discovery delete the link and the sentence since the docs have been moved Jan 7, 2017
docs Update README.md Nov 1, 2016
experimental move rescheduling out of experimental Mar 15, 2016
scheduler Merge pull request #2603 from fate-grand-order/master Jan 20, 2017
script move dependencies to vendor/ Apr 14, 2016
swarmclient Fixes #2488. Updated godep golang version to 1.7. Some API changes in… Nov 25, 2016
test fix all typos I found in this repository Jan 19, 2017
vendor update go-zookeeper to rev 1d7be4e Jan 6, 2017
version Bump version to 1.2.6-rc1 Dec 21, 2016
.gitignore fix gitignore to specifically ignore the binary called swarm in the r… Sep 1, 2015
.godir update .godir Nov 18, 2014
.travis.yml Update Swarm CI to use go 1.7.1 Oct 18, 2016
CHANGELOG.md fix all typos I found in this repository Jan 19, 2017
CONTRIBUTING.md Bump Dockerfile to go 1.7.1. Oct 19, 2016
Dockerfile fix swarm version Jan 19, 2017
Jenkinsfile Add docs checking Jenkinsfile Aug 22, 2016
LICENSE.code fix swarm license grant Dec 1, 2015
LICENSE.docs fix swarm license grant Dec 1, 2015
MAINTAINERS remove abronan as a maintainer Aug 24, 2016
README.md Clarify Docker Swarm and Swarmkit projects. Jul 8, 2016
RELEASE-CHECKLIST.md fix the typo Nov 28, 2016
ROADMAP.md Small spelling and capitalisation fixes May 27, 2015
logo.png update swarm logo Oct 14, 2015
main.go use docker/docker/pkg/discovery Jan 12, 2016


Swarm: a Docker-native clustering system

GoDoc Jenkins Build Status Build Status Go Report Card

Docker Swarm Logo

Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual host.

Swarm Disambiguation

Docker Swarm standalone: This project. A native clustering system for Docker. It turns a pool of Docker hosts into a single, virtual host using an API proxy system. See Docker Swarm overview. It is Docker's first container orchestration project that began in 2014. Combined with Docker Compose, it's a very convenient tool to schedule containers. Its flexibility and simplicity make it easy to integrate with existing IT infrastructure. Many companies and users have deployed Docker Swarm standalone for production and experimental projects. Docker does not currently have a plan to deprecate Docker Swarm. The Docker API is backward compatible so Docker Swarm will continue to work with future Docker Engine versions.

Swarmkit: Cluster management and orchestration features in Docker Engine 1.12 or later. When Swarmkit is enabled we call Docker Engine running in swarm mode. See the feature list: Swarm mode overview. This project focuses on micro-service architecture. It supports service reconciliation, load balancing, service discovery, built-in certificate rotation, etc. Swarm mode is Docker's response to the community's request to simplify service orchestration.

While the 2 projects may accomplish similar tasks, they work on different levels in terms of service architecture. Users can choose which one is more suitable for their workload. If you're in doubt, Docker recommends that you try Docker 1.12 and later with built-in swarm mode.

Docker Swarm standalone

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 for Swarm Users

For instructions on using Swarm in your dev, test or production environment, refer to the Docker Swarm documentation on docs.docker.com.

Building Swarm from Source

To compile Swarm from source code, refer to the instructions in CONTRIBUTING.md


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. Setting up a local Swarm development environment and submitting PRs is described 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

Copyright © 2014-2016 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/.