Starting and stopping containers in Docker - Time & Space Complexity
We want to understand how the time it takes to start and stop Docker containers changes as we handle more containers.
How does the number of containers affect the total time to start or stop them all?
Analyze the time complexity of the following Docker commands used in a script.
for container in $(docker ps -q); do
docker stop $container
docker start $container
done
This script stops and then starts each running container one by one.
Look for repeated actions in the code.
- Primary operation: Stopping and starting each container.
- How many times: Once for each container running on the system.
As the number of containers increases, the total time grows because each container is handled separately.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 20 (10 stops + 10 starts) |
| 100 | 200 (100 stops + 100 starts) |
| 1000 | 2000 (1000 stops + 1000 starts) |
Pattern observation: The total operations grow directly with the number of containers.
Time Complexity: O(n)
This means the time to start and stop containers grows in a straight line with how many containers there are.
[X] Wrong: "Starting or stopping multiple containers at once takes the same time as one container."
[OK] Correct: Each container needs its own start and stop action, so time adds up with more containers.
Understanding how operations scale with the number of containers shows you can think about system behavior as it grows, a key skill in real work.
"What if we stopped and started containers in parallel instead of one by one? How would the time complexity change?"
Practice
Solution
Step 1: Understand the purpose of
This command resumes a container that was previously stopped without creating a new one.docker startStep 2: Differentiate from other commands
docker runcreates a new container,docker stopstops a running container, anddocker restartstops then starts a container.Final Answer:
docker start <container_name> -> Option CQuick Check:
Start stopped container = docker start [OK]
- Confusing 'docker run' with 'docker start'
- Using 'docker stop' to start containers
- Thinking 'docker restart' only starts containers
webapp?Solution
Step 1: Identify the command to safely stop a container
docker stopsends a signal to gracefully stop the container.Step 2: Check other options
docker killforcefully stops,docker pausesuspends, anddocker terminateis invalid.Final Answer:
docker stop webapp -> Option DQuick Check:
Stop container safely = docker stop [OK]
- Using 'docker kill' instead of 'docker stop'
- Confusing 'docker pause' with stopping
- Using non-existent commands like 'docker terminate'
db is currently stopped?docker start db docker stop db
Solution
Step 1: Analyze
This command starts the stopped container named 'db'.docker start dbStep 2: Analyze
This command stops the running container 'db' safely.docker stop dbFinal Answer:
Container 'db' starts, then stops successfully -> Option AQuick Check:
Start then stop container = success [OK]
- Assuming 'docker start' creates a new container
- Expecting errors if container exists
- Thinking container restarts automatically without command
docker start myapp but get the error: Error response from daemon: No such container: myapp. What is the most likely cause?Solution
Step 1: Understand the error message
The error says 'No such container', meaning 'myapp' is not found in Docker's container list.Step 2: Check other options
If it was running, 'docker start' would not error; 'docker run' creates new containers but error is about missing container; daemon not running causes different errors.Final Answer:
The container 'myapp' does not exist -> Option BQuick Check:
No such container error = container missing [OK]
- Assuming container is running when error says missing
- Trying 'docker run' without checking container list
- Ignoring Docker daemon status
api-server but ensure it has 10 seconds to finish its work before stopping. Which command should you use?Solution
Step 1: Understand the timeout option in
Thedocker stop-tor--timeflag sets seconds to wait before killing the container.Step 2: Evaluate the options
docker killdoes not support-t,docker pauseonly suspends, and-timeoutis invalid syntax.Final Answer:
docker stop -t 10 api-server -> Option AQuick Check:
Stop with timeout = docker stop -t [OK]
- Using 'docker kill' with timeout flag
- Using invalid flags like '-timeout'
- Confusing 'pause' with stopping
Ready to prove it?
Pass the test and this pattern moves unknown
