📖 Scenario: You are managing Docker containers on your local machine. You want to check how much CPU and memory each container is using to keep your system healthy.
🎯 Goal: Learn to use Docker commands to list running containers and display their CPU and memory usage statistics.
📋 What You'll Learn
Use the docker ps command to list running containers.
Use the docker stats --no-stream command to get resource usage of containers.
Filter the output to show only container IDs, names, CPU %, and memory usage.
💡 Why This Matters
🌍 Real World
Monitoring container resource usage helps keep applications running smoothly and prevents system overload.
💼 Career
DevOps engineers and system administrators regularly check container stats to maintain healthy infrastructure.
Progress0 / 4 steps
1
List running Docker containers
Run the command docker ps --format "{{.ID}} {{.Names}}" to list all running containers showing only their IDs and names.
Docker
Hint
This command lists running containers with their IDs and names in a simple format.
2
Add option to show resource usage once
Run the command docker stats --no-stream --format "{{.Container}} {{.Name}} {{.CPUPerc}} {{.MemUsage}}" to show CPU and memory usage of running containers only once.
Docker
Hint
The --no-stream option makes docker stats show usage once instead of continuously.
3
Filter output to show only container ID, name, CPU %, and memory usage
Use the command docker stats --no-stream --format "{{.Container}} {{.Name}} {{.CPUPerc}} {{.MemUsage}}" to display only container ID, name, CPU percentage, and memory usage.
Docker
Hint
The format string controls which columns appear in the output.
4
Display the container resource usage stats
Run the command docker stats --no-stream --format "{{.Container}} {{.Name}} {{.CPUPerc}} {{.MemUsage}}" and observe the output showing container resource usage.
Docker
Hint
The output will show each container's ID, name, CPU percentage, and memory usage.
Practice
(1/5)
1. What does the docker stats command show you?
easy
A. Docker network settings
B. Real-time resource usage like CPU and memory of containers
C. Logs of a running container
D. List of all Docker images on the system
Solution
Step 1: Understand the purpose of docker stats
This command is designed to show resource usage statistics of running containers.
Step 2: Identify what resource stats include
It shows CPU, memory, network IO, and block IO usage in real time.
Final Answer:
Real-time resource usage like CPU and memory of containers -> Option B
2. Which of these is the correct syntax to get a one-time snapshot of container stats for container named webapp?
easy
A. docker stats --no-stream webapp
B. docker stats webapp
C. docker stats --once webapp
D. docker stats webapp --snapshot
Solution
Step 1: Recall the correct option for one-time snapshot
The flag --no-stream disables continuous updates and shows a single snapshot.
Step 2: Check correct command order
The flag --no-stream should come before the container name webapp.
Final Answer:
docker stats --no-stream webapp -> Option A
Quick Check:
One-time stats = --no-stream before container [OK]
Hint: Use --no-stream before container name for snapshot [OK]
Common Mistakes:
Using wrong flag like --once or --snapshot
Omitting the --no-stream flag
Omitting container name
3. What output will you get when running docker stats --no-stream with two running containers named db and cache?
medium
A. A single snapshot table showing CPU, memory, and IO stats for db and cache
B. An error saying container names are missing
C. A live updating table of resource usage for db and cache containers
D. Only stats for the first container found
Solution
Step 1: Understand the effect of --no-stream flag
This flag disables live updates and shows only one snapshot of stats.
Step 2: Check default behavior without container names
Without specifying containers, stats shows all running containers, here db and cache.
Final Answer:
A single snapshot table showing CPU, memory, and IO stats for db and cache -> Option A
Quick Check:
--no-stream + multiple containers = single snapshot for all [OK]
Hint: No container names + --no-stream = snapshot for all running [OK]
Common Mistakes:
Expecting live updates with --no-stream
Thinking container names are required
Assuming only one container stats shown
4. You run docker stats --no-stream mycontainer but get an error: no such container: mycontainer. What is the likely cause?
medium
A. Docker daemon is not running
B. The --no-stream flag is not supported
C. The container name is misspelled or does not exist
D. You need to add --all flag to see stopped containers
Solution
Step 1: Analyze the error message
The error says container not found, so the name is likely wrong or container is not running.
Step 2: Check other options
--no-stream is valid, Docker daemon error would be different, and --all is not for stats command.
Final Answer:
The container name is misspelled or does not exist -> Option C
Quick Check:
Container not found error = wrong name [OK]
Hint: Check container name spelling if 'no such container' error [OK]
Common Mistakes:
Assuming --no-stream causes error
Ignoring Docker daemon status
Thinking --all shows stats for stopped containers
5. You want to monitor CPU and memory usage of a container named api-server but only want a single snapshot, not continuous updates. Which command should you use and why?
hard
A. docker stats api-server --interval=1 to update every second
B. docker stats api-server because it shows live updates by default
C. docker stats --all api-server to include stopped containers
D. docker stats --no-stream api-server because it shows one-time resource usage snapshot
Solution
Step 1: Identify the need for a single snapshot
Using --no-stream disables continuous updates and shows one snapshot.
Step 2: Confirm container name usage
Specify the container name api-server to get stats only for it.
Step 3: Evaluate other options
Default docker stats streams live updates, --all is invalid here, and --interval is not a valid flag.
Final Answer:
docker stats --no-stream api-server because it shows one-time resource usage snapshot -> Option D
Quick Check:
Single snapshot = --no-stream with container name [OK]
Hint: Use --no-stream with container name for single snapshot [OK]
Common Mistakes:
Omitting --no-stream for single snapshot
Using invalid flags like --all or --interval
Expecting live updates when not wanted
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.