Skip to content

8.2 Setting Up a Swarm Cluster

Setting up a Docker Swarm cluster allows you to create a group of Docker nodes that work together as a single entity, providing scalability and high availability for your containerized applications. Here's a detailed explanation of setting up a Swarm cluster:

1. Requirements:

  • To set up a Swarm cluster, you need multiple Docker hosts running Docker Engine.
  • Each Docker host can be a physical machine, a virtual machine, or a cloud instance.
  • Ensure that all the Docker hosts are running a compatible version of Docker Engine.

2. Choosing a Manager Node:

  • In a Swarm cluster, one or more nodes act as manager nodes, responsible for managing and orchestrating the cluster.
  • Choose one of the Docker hosts to be the initial manager node.
  • You can initialize the Swarm cluster on the manager node using the docker swarm init command.

3. Adding Worker Nodes:

  • Once the manager node is set up, you can add worker nodes to the cluster.
  • Worker nodes are the Docker hosts that execute the containers and distribute the workload.
  • To add a worker node to the Swarm cluster, you need to run a command provided by the manager node, which includes a token for joining the cluster.

4. Joining the Swarm Cluster:

  • On each Docker host that you want to add as a worker node, run the command provided by the manager node.
  • This command includes the token required for the Docker host to join the Swarm cluster.
  • By executing this command, the Docker host becomes part of the cluster and starts accepting tasks from the manager node.

5. Verifying the Swarm Cluster:

  • After adding the worker nodes, you can verify the status and health of the Swarm cluster.
  • On the manager node, you can use the docker node ls command to list all the nodes in the cluster.
  • This command shows information about the manager and worker nodes, including their availability and status.

6. Deploying Services:

  • With the Swarm cluster set up, you can deploy services that run as containers distributed across the nodes.
  • Define the desired state of the services, including the number of replicas, Docker image, exposed ports, and other configurations.
  • Docker Swarm automatically schedules and distributes the services across the available nodes, ensuring high availability and scalability.