Docker Swarm overview
Estimated reading time: 2 minutes
You are viewing docs for legacy standalone Swarm. These topics describe standalone Docker Swarm. In Docker 1.12 and higher, Swarm mode is integrated with Docker Engine. Most users should use integrated Swarm mode — a good place to start is Getting started with swarm mode, Swarm mode CLI commands, and the Get started with Docker walkthrough). Standalone Docker Swarm is not integrated into the Docker Engine API and CLI commands.
Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual Docker host. Because Docker Swarm serves the standard Docker API, any tool that already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts. Supported tools include, but are not limited to, the following:
- Docker Compose
- Docker Machine
And of course, the Docker client itself is also supported.
Like other Docker projects, Docker Swarm follows the “swap, plug, and play” principle. As initial development settles, an API develops to enable pluggable backends. This means you can swap out the scheduling backend Docker Swarm uses out-of-the-box with a backend you prefer. Swarm’s swappable design provides a smooth out-of-box experience for most use cases, and allows large-scale production deployments to swap for more powerful backends, like Mesos.
Understand Swarm cluster creation
The first step to creating a swarm cluster on your network is to pull the Docker Swarm image. Then, using Docker, you configure the swarm manager and all the nodes to run Docker Swarm. This method requires that you:
- open a TCP port on each node for communication with the swarm manager
- install Docker on each node
- create and manage TLS certificates to secure your cluster
As a starting point, the manual method is best suited for experienced
administrators or programmers contributing to Docker Swarm. The alternative is
docker-machine to install a cluster.
Using Docker Machine, you can quickly install a Docker Swarm on cloud providers or inside your own data center. If you have VirtualBox installed on your local machine, you can quickly build and explore Docker Swarm in your local environment. This method automatically generates a certificate to secure your cluster.
Using Docker Machine is the best method for users getting started with Swarm for the first time. To try the recommended method of getting started, see Get Started with Docker Swarm.
If you are interested manually installing or interested in contributing, see Build a swarm cluster for production.
To dynamically configure and manage the services in your containers, you use a discovery backend with Docker Swarm. For information on which backends are available, see the Discovery service documentation.
Docker Swarm is still in its infancy and under active development. If you need help, would like to contribute, or simply want to talk about the project with like-minded individuals, we have a number of open channels for communication.
To report bugs or file feature requests, use the issue tracker on Github.
To talk about the project with people in real time, join the
#docker-swarmchannel on IRC.
To contribute code or documentation changes, submit a pull request on Github.
For more information and resources, visit the Getting Help project page.docker, swarm, clustering