Bird
Raised Fist0
Dockerdevops~5 mins

Service scaling in Docker - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes your app needs more power to handle many users at once. Service scaling lets you run more copies of your app easily to share the work and keep things fast.
When your website gets slow because too many people visit at the same time
When you want to test how your app behaves with multiple copies running
When you need to update your app without stopping all users by running new copies first
When you want to balance the work across several servers or containers
When you want to save resources by running fewer copies during quiet times
Commands
This command creates a new service named 'my-web' running the nginx web server with 3 copies (replicas). It also maps port 8080 on your machine to port 80 inside the containers so you can access the web server.
Terminal
docker service create --name my-web --replicas 3 -p 8080:80 nginx
Expected OutputExpected
q1w2e3r4t5y6z7a8b9c0d1e2f3g4h5i6j7k8l9m0n1o2p3q4r5s6t7u8v9w0x1y2z3
→
--name - Sets the name of the service
→
--replicas - Specifies how many copies of the service to run
→
-p - Maps a port on the host to a port in the container
This command lists all running services so you can see your 'my-web' service and how many replicas it has.
Terminal
docker service ls
Expected OutputExpected
ID NAME MODE REPLICAS IMAGE PORTS q1w2e3r4t5y6 my-web replicated 3/3 nginx:latest *:8080->80/tcp
This command changes the number of copies of the 'my-web' service to 5, adding two more copies to handle more traffic.
Terminal
docker service scale my-web=5
Expected OutputExpected
my-web scaled to 5 overall progress: 5 out of 5 tasks verify: Service converged
This command shows the status of each copy (task) of the 'my-web' service so you can check that all 5 copies are running.
Terminal
docker service ps my-web
Expected OutputExpected
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS x1y2z3a4b5c6 my-web.1 nginx:latest node-1 Running Running 2 minutes ago x2y3z4a5b6c7 my-web.2 nginx:latest node-1 Running Running 2 minutes ago x3y4z5a6b7c8 my-web.3 nginx:latest node-1 Running Running 2 minutes ago x4y5z6a7b8c9 my-web.4 nginx:latest node-1 Running Running 1 minute ago x5y6z7a8b9c0 my-web.5 nginx:latest node-1 Running Running 1 minute ago
Key Concept

If you remember nothing else from this pattern, remember: scaling a service means running more copies to share the work and keep your app fast.

Common Mistakes
Trying to scale a service that was not created as a Docker service (e.g., a standalone container)
Docker service commands only work with services managed by Docker Swarm, not with individual containers.
Create the app as a Docker service first using 'docker service create' before scaling.
Not exposing the correct ports when creating the service, so the app is not reachable
Without port mapping, you cannot access the app from outside the container.
Use the '-p' flag to map host ports to container ports when creating the service.
Scaling to zero replicas accidentally
This stops all copies of the service, making the app unavailable.
Always scale to at least one replica to keep the service running.
Summary
Create a Docker service with a specific number of replicas to run multiple copies of your app.
Use 'docker service ls' to check running services and their replica counts.
Change the number of replicas anytime with 'docker service scale' to handle more or less traffic.
Verify each replica's status with 'docker service ps' to ensure all copies are running.

Practice

(1/5)
1. What does the command docker service scale myservice=3 do?
easy
A. It stops the service named 'myservice'.
B. It runs 3 copies of the service named 'myservice'.
C. It updates the service 'myservice' to version 3.
D. It removes the service named 'myservice'.

Solution

  1. Step 1: Understand the command structure

    The command docker service scale SERVICE_NAME=NUMBER sets the number of replicas for a service.
  2. Step 2: Apply to the given command

    Here, myservice=3 means run 3 replicas of the service named 'myservice'.
  3. Final Answer:

    It runs 3 copies of the service named 'myservice'. -> Option B
  4. Quick Check:

    Scaling sets replicas = 3 [OK]
Hint: Scale sets number of service copies with SERVICE=NUMBER [OK]
Common Mistakes:
  • Confusing scaling with stopping or removing services
  • Thinking scale changes service version
  • Using wrong syntax without '=' sign
2. Which of these is the correct syntax to scale a Docker service named 'webapp' to 5 replicas?
easy
A. docker service scale webapp 5
B. docker service scale -replicas=5 webapp
C. docker service scale webapp=5
D. docker scale service webapp=5

Solution

  1. Step 1: Recall correct scale command syntax

    The correct syntax is docker service scale SERVICE_NAME=NUMBER with an equals sign.
  2. Step 2: Match options to syntax

    docker service scale webapp=5 uses webapp=5 which matches the correct syntax.
  3. Final Answer:

    docker service scale webapp=5 -> Option C
  4. Quick Check:

    Correct syntax uses '=' sign [OK]
Hint: Use '=' between service name and replica count [OK]
Common Mistakes:
  • Omitting '=' sign between service and number
  • Using wrong command order
  • Confusing 'docker scale' with 'docker service scale'
3. Given the command docker service scale backend=2 was run on a service with 1 replica, what will be the output of docker service ls for the 'backend' service's REPLICAS column?
medium
A. 2/2
B. 1/2
C. 2/1
D. 1/1

Solution

  1. Step 1: Understand scaling effect on replicas

    Scaling to 2 means the service should have 2 running replicas out of 2 desired.
  2. Step 2: Interpret REPLICAS column format

    The format is running/desired. After scaling, both running and desired should be 2.
  3. Final Answer:

    2/2 -> Option A
  4. Quick Check:

    Replicas show running/desired = 2/2 [OK]
Hint: Replicas show running/desired count after scaling [OK]
Common Mistakes:
  • Mixing running and desired counts order
  • Assuming replicas don't update immediately
  • Confusing scale number with current replicas
4. You run docker service scale frontend=abc but get an error. What is the likely cause?
medium
A. The replica count must be a number, not 'abc'.
B. The service name 'frontend' is invalid.
C. You need to use a space instead of '='.
D. Scaling requires the service to be stopped first.

Solution

  1. Step 1: Check the replica count format

    The replica count must be a positive integer number, not a string like 'abc'.
  2. Step 2: Validate error cause

    Using 'abc' causes a syntax or validation error because replicas must be numeric.
  3. Final Answer:

    The replica count must be a number, not 'abc'. -> Option A
  4. Quick Check:

    Replica count must be numeric [OK]
Hint: Replica count must be a number, not letters [OK]
Common Mistakes:
  • Using letters instead of numbers for replicas
  • Thinking service must be stopped to scale
  • Using space instead of '=' sign
5. You have a service 'api' currently running 4 replicas. You want to handle a sudden traffic spike by doubling the replicas temporarily. Which command correctly doubles the replicas?
hard
A. docker service scale api=4
B. docker service scale api=16
C. docker service scale api=2
D. docker service scale api=8

Solution

  1. Step 1: Identify current replica count

    The service 'api' currently has 4 replicas running.
  2. Step 2: Calculate double replicas

    Doubling 4 replicas means setting replicas to 8.
  3. Step 3: Choose correct scale command

    The command docker service scale api=8 sets replicas to 8, doubling the current count.
  4. Final Answer:

    docker service scale api=8 -> Option D
  5. Quick Check:

    Double 4 replicas = 8 [OK]
Hint: Double replicas by setting scale to twice current count [OK]
Common Mistakes:
  • Setting replicas to current count instead of double
  • Setting replicas to half or quadruple by mistake
  • Using wrong syntax for scaling
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard