Scaling a Docker Swarm Service

1.5 hours
  • 5 Learning Objectives

About this Hands-on Lab

For the last six months, the Acme Anvil Corporation has been migrating some of their bare metal infrastructure to Docker containers. A schism has developed between the members of your team on whether to use Docker Swarm or Kubernetes. To settle the dispute, your manager has decided to create a series of challenges. You have been tasked with setting up a Docker swarm with 5 nodes: 2 masters and 3 workers. The masters are to be configured to act only as masters. Next, you will create an httpd service with 3 replicas. Finally, you will scale the service up to 5 replicas and then down to 2.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create a Swarm

Create a swarm with 2 masters and 3 worker nodes.

Initilize the swarm.

docker swarm init

Use the join command to add the 3 worker nodes.

docker swarm join --token TOKEN IP_ADDRESS:2377

Generate the master token.

docker swarm join-token manager
Drain the Masters

Set the availability to drain for Master1.

docker node update --availability drain MASTER1

Set the availability to drain for Master2.

docker node update --availability drain MASTER2
Create a Service

Create a service with 3 replicas.

docker service create --name httpd -p 80:80 --replicas 3 httpd
Scale the Service up to 5 Replicas

Scale the httpd service up to 5 replicas.

docker service scale httpd=5
Scale the Service Down to 2 Replicas

Scale the httpd service down to 2 replicas.

docker service scale httpd=2

Additional Resources

In this learning activity, you are tasked with scaling up a Docker Swarm service.

  1. Create a swarm with 2 masters and 3 worker nodes.
  2. Ensure that the 2 masters will only function as masters.
  3. Create an httpd service.
  4. Call the service httpd.
  5. Map port 80 to port 80 on the container.
  6. Create 3 replicas.
  7. Use the httpd image.
  8. Scale the httpd service up to 5 nodes.
  9. Scale the httpd service down to 2 nodes.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?