Bird
Raised Fist0
Dockerdevops~10 mins

Service scaling in Docker - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Service scaling
Start with 1 service instance
↓
Check desired scale number
↓
Compare current instances with desired
↓
Add more instances
↓
Update running services
↓
Scaling complete
This flow shows how Docker service scaling adjusts the number of running instances to match the desired count by adding or removing containers.
Execution Sample
Docker
docker service create --name webapp nginx

docker service scale webapp=3

docker service ps webapp
Create a service named 'webapp' with 1 instance, then scale it to 3 instances, and finally list the running instances.
Process Table
StepCommandCurrent InstancesDesired InstancesActionResult
1docker service create --name webapp nginx01 (default)Create service with 1 instanceService 'webapp' created with 1 instance
2docker service ps webapp11List running instances1 instance running
3docker service scale webapp=313Scale up by adding 2 instancesService scaled to 3 instances
4docker service ps webapp33List running instances3 instances running
5docker service scale webapp=232Scale down by removing 1 instanceService scaled to 2 instances
6docker service ps webapp22List running instances2 instances running
7docker service scale webapp=222No change neededScaling skipped, already at desired count
💡 Scaling stops when current instances equal desired instances.
Status Tracker
VariableStartAfter Step 1After Step 3After Step 5Final
Current Instances01322
Desired Instances1 (default)1322
Key Moments - 3 Insights
Why does the service start with 1 instance even if we don't specify a number?
By default, Docker creates a service with 1 instance as shown in step 1 of the execution_table where desired instances is 1.
What happens if we scale to the same number of instances as currently running?
No scaling action is taken, as shown in step 7 where current and desired instances are both 2, so scaling is skipped.
How does Docker decide whether to add or remove instances?
Docker compares current and desired instances (step 3 and 5). If desired is greater, it adds instances; if less, it removes instances.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3. How many instances are added to scale the service?
A3
B1
C2
D0
💡 Hint
Check the 'Current Instances' and 'Desired Instances' columns at step 3.
At which step does the service scale down?
AStep 2
BStep 5
CStep 4
DStep 7
💡 Hint
Look for where 'Desired Instances' is less than 'Current Instances' in the execution_table.
If you run 'docker service scale webapp=4' after step 5, what will be the new 'Current Instances'?
A4
B3
C2
D5
💡 Hint
Scaling up increases instances to the desired number as shown in step 3.
Concept Snapshot
Service scaling in Docker adjusts the number of running containers.
Use 'docker service scale <service>=<count>' to set desired instances.
Docker adds or removes containers to match the desired count.
Default service creation starts with 1 instance.
Check running instances with 'docker service ps <service>'.
Full Transcript
Service scaling in Docker means changing how many copies of a service run. When you create a service, it starts with one instance by default. You can increase or decrease this number using the 'docker service scale' command. Docker compares the current number of instances with the desired number. If you want more, Docker adds instances. If you want fewer, Docker removes some. You can check how many instances are running with 'docker service ps'. This process helps manage load and availability easily.

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