📖 Scenario: You are managing a simple web service using Docker. To handle more visitors, you want to run multiple copies (replicas) of your service.This project will guide you to create a Docker Compose setup and scale the service replicas.
🎯 Goal: Build a Docker Compose file to define a web service and then scale it to run multiple replicas.
📋 What You'll Learn
Create a Docker Compose file with a web service using the nginx image
Add a configuration variable for the number of replicas
Use the docker-compose command to scale the service
Display the running containers to verify scaling
💡 Why This Matters
🌍 Real World
Scaling services with replicas is common when websites or apps get more visitors. Running multiple copies helps handle more users smoothly.
💼 Career
DevOps engineers often use Docker Compose and scaling commands to manage service availability and performance in real projects.
Progress0 / 4 steps
1
Create a Docker Compose file with a web service
Create a file named docker-compose.yml with a service called web that uses the nginx:latest image.
Docker
Hint
Use YAML syntax to define the service under services: with the name web and specify the image nginx:latest.
2
Add a variable for the number of replicas
Add a variable called REPLICAS in a .env file and set it to 3 to define how many replicas you want.
Docker
Hint
Create a file named .env in the same folder as docker-compose.yml and add the line REPLICAS=3.
3
Scale the web service using the replicas variable
Use the command docker-compose up -d --scale web=${REPLICAS} to start the web service with the number of replicas from the REPLICAS variable.
Docker
Hint
Use the --scale option with docker-compose up -d and pass the replicas variable as ${REPLICAS}.
4
Display running containers to verify scaling
Run docker ps --filter name=web to list all running containers with the name web and verify that there are 3 replicas running.
Docker
Hint
Use docker ps --filter name=web to see all containers with web in their name. You should see 3 containers listed.
Practice
(1/5)
1. What does scaling a Docker service with replicas do?
easy
A. Runs multiple copies of the service to handle more work
B. Deletes the service completely
C. Changes the service's network settings
D. Updates the Docker engine version
Solution
Step 1: Understand the purpose of replicas
Replicas are copies of a service running simultaneously to share the workload.
Step 2: Identify the effect of scaling replicas
Scaling increases or decreases the number of these copies to improve performance and availability.
Final Answer:
Runs multiple copies of the service to handle more work -> Option A
Quick Check:
Scaling = multiple copies [OK]
Hint: Scaling means running more copies of your service [OK]
Common Mistakes:
Thinking scaling deletes the service
Confusing scaling with network changes
Assuming scaling updates Docker itself
2. Which is the correct command to scale a Docker service named webapp to 5 replicas?
easy
A. docker service scale webapp -replicas 5
B. docker scale service webapp 5
C. docker service scale webapp --replicas=5
D. docker service scale webapp=5
Solution
Step 1: Recall the correct syntax for scaling
The correct syntax is docker service scale SERVICE_NAME=NUMBER.
Step 2: Match the syntax with the options
docker service scale webapp=5 matches the exact syntax: docker service scale webapp=5.
Final Answer:
docker service scale webapp=5 -> Option D
Quick Check:
Correct syntax = docker service scale NAME=NUM [OK]
Hint: Use SERVICE_NAME=NUMBER format with docker service scale [OK]
Common Mistakes:
Using wrong command order
Adding extra flags not needed
Using spaces instead of '='
3. Given the command docker service scale api=3, what will be the number of running containers for the api service?
medium
A. 3 containers
B. 1 container
C. 0 containers
D. Depends on the Docker version
Solution
Step 1: Understand the scale command effect
The command sets the number of replicas to 3, so Docker runs 3 containers for the service.
Step 2: Confirm the number of containers
Scaling to 3 means exactly 3 containers will be running for api.
Final Answer:
3 containers -> Option A
Quick Check:
Scale api=3 means 3 containers [OK]
Hint: Scale number equals running containers count [OK]
Common Mistakes:
Assuming only 1 container runs by default
Thinking scaling depends on Docker version
Confusing replicas with CPU cores
4. You run docker service scale backend=two but get an error. What is the problem?
medium
A. The service name cannot be 'backend'
B. The number of replicas must be a numeric value
C. The command should be run as root user
D. Docker service scale does not support scaling
Solution
Step 1: Check the scale command syntax
The replicas count must be a number, not a word.
Step 2: Identify the error cause
Using 'two' instead of '2' causes a syntax error.
Final Answer:
The number of replicas must be a numeric value -> Option B
Quick Check:
Replicas must be numeric [OK]
Hint: Use digits, not words, for replica counts [OK]
Common Mistakes:
Using words instead of numbers
Assuming service name is invalid
Thinking root user is required
5. You have a service app running with 2 replicas. You want to update it to 4 replicas but keep the service running without downtime. Which command should you use?
hard
A. docker service scale app 4
B. docker container run app --replicas 4
C. docker service update --replicas 4 app
D. docker service restart app --replicas 4
Solution
Step 1: Understand how to update replicas without downtime
Using docker service update --replicas 4 app changes replicas smoothly.
Step 2: Compare options for scaling
docker service scale can scale but docker service update is preferred for zero downtime updates.
Step 3: Identify incorrect commands
docker container run and docker service restart do not scale replicas properly.
Final Answer:
docker service update --replicas 4 app -> Option C
Quick Check:
Use service update for zero downtime scaling [OK]
Hint: Use 'docker service update --replicas' to avoid downtime [OK]
Common Mistakes:
Using docker service scale causing brief downtime
Trying to run containers manually
Restarting service instead of updating replicas
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.