Bird
Raised Fist0
Dockerdevops~5 mins

Container resource usage stats in Docker - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes containers use too much memory or CPU and slow down your system. Checking resource usage helps you find which container is causing the problem and fix it quickly.
When your server feels slow and you want to see if a container is using too much CPU.
When you want to monitor memory use of a container running a database to avoid crashes.
When you need to check network traffic of a container to troubleshoot slow responses.
When you want to track resource use over time to plan for scaling your app.
When you want to confirm that resource limits you set on containers are working.
Commands
This command lists all running containers so you can see their names and IDs before checking their stats.
Terminal
docker ps
Expected OutputExpected
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b1c2d3e4f5g6 nginx:1.23 "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp my-nginx 7h8i9j0k1l2m redis:7.0 "docker-entrypoint.s…" 3 hours ago Up 3 hours 6379/tcp my-redis
This command shows the current CPU, memory, and network usage of the container named 'my-nginx'. The --no-stream flag makes it show the stats once and then stop.
Terminal
docker stats my-nginx --no-stream
Expected OutputExpected
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS b1c2d3e4f5g6 my-nginx 0.15% 12.3MiB / 1GiB 1.20% 1.2MB / 1.1MB 0B / 0B 5
→
--no-stream - Show stats only once instead of continuously updating
This command shows live resource usage stats for all running containers, updating every second until you stop it with Ctrl+C.
Terminal
docker stats
Expected OutputExpected
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS b1c2d3e4f5g6 my-nginx 0.20% 12.5MiB / 1GiB 1.22% 1.3MB / 1.2MB 0B / 0B 5 7h8i9j0k1l2m my-redis 0.05% 8.7MiB / 512MiB 1.70% 0.5MB / 0.4MB 0B / 0B 3
Key Concept

If you remember nothing else from this pattern, remember: docker stats shows real-time resource use of containers to help you monitor and troubleshoot performance.

Common Mistakes
Running 'docker stats' without specifying --no-stream when you only want a single snapshot.
The command keeps running and updating, which can be confusing if you expect just one output.
Add the --no-stream flag to get a one-time snapshot of container stats.
Trying to check stats of a container that is not running.
Docker stats only works for running containers and will show an error or no output.
Use 'docker ps' first to confirm the container is running before checking stats.
Summary
Use 'docker ps' to list running containers and find their names or IDs.
Use 'docker stats container-name --no-stream' to get a one-time snapshot of resource usage.
Use 'docker stats' to watch live resource usage of all running containers until you stop it.

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

  1. Step 1: Understand the purpose of docker stats

    This command is designed to show resource usage statistics of running containers.
  2. Step 2: Identify what resource stats include

    It shows CPU, memory, network IO, and block IO usage in real time.
  3. Final Answer:

    Real-time resource usage like CPU and memory of containers -> Option B
  4. Quick Check:

    docker stats = resource usage [OK]
Hint: Remember: stats = resource usage snapshot [OK]
Common Mistakes:
  • Confusing stats with logs
  • Thinking it lists images
  • Assuming it shows network config
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

  1. Step 1: Recall the correct option for one-time snapshot

    The flag --no-stream disables continuous updates and shows a single snapshot.
  2. Step 2: Check correct command order

    The flag --no-stream should come before the container name webapp.
  3. Final Answer:

    docker stats --no-stream webapp -> Option A
  4. 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

  1. Step 1: Understand the effect of --no-stream flag

    This flag disables live updates and shows only one snapshot of stats.
  2. Step 2: Check default behavior without container names

    Without specifying containers, stats shows all running containers, here db and cache.
  3. Final Answer:

    A single snapshot table showing CPU, memory, and IO stats for db and cache -> Option A
  4. 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

  1. Step 1: Analyze the error message

    The error says container not found, so the name is likely wrong or container is not running.
  2. Step 2: Check other options

    --no-stream is valid, Docker daemon error would be different, and --all is not for stats command.
  3. Final Answer:

    The container name is misspelled or does not exist -> Option C
  4. 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

  1. Step 1: Identify the need for a single snapshot

    Using --no-stream disables continuous updates and shows one snapshot.
  2. Step 2: Confirm container name usage

    Specify the container name api-server to get stats only for it.
  3. Step 3: Evaluate other options

    Default docker stats streams live updates, --all is invalid here, and --interval is not a valid flag.
  4. Final Answer:

    docker stats --no-stream api-server because it shows one-time resource usage snapshot -> Option D
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard