Docker Tip #21: Measure Your Docker Containers' Resources
Docker has a built in command to let you see how much CPU, memory, network I/O and block I/O your containers are using.
It’s very beneficial to see how much resources your containers are using. Armed with that knowledge, you can then provision machines that match up with how much resources your containers use in total. You’ll save money in the long run by doing that.
All you have to do is run docker stats
on a machine that’s running Docker.
Live stream of stats about your containers:
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
9c2f69f8631e 25.75% 5.188MiB / 5.877GiB 0.09% 6.32MB / 7.63MB 34.2MB / 37.5MB
c6d1f0738982 0.29% 44.31MiB / 5.877GiB 0.74% 24.5kB / 4.99kB 26.5MB / 0B
5a52bc636ec3 14.93% 948KiB / 5.877GiB 0.02% 4.79MB / 3.73MB 2.7MB / 0B
f9f8d3140cd3 0.75% 27.59MiB / 5.877GiB 0.46% 26.1kB / 0B 14.8MB / 0B
e60048f81636 137.01% 48.8MiB / 5.877GiB 0.81% 11.4MB / 11.1MB 41.3MB / 0B
Update: Over time Docker added the NAME
and PID
columns (not shown above) to the output.
If you’d like, you can narrow it down to a specific container by adding in 1 or
more container names / IDs after the command. For example docker stats 9c2f c6d1
.
You can even use the --format
flag to limit what you see.
Limit the output to only show CPU and memory stats:
$ docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
CONTAINER CPU % MEM USAGE / LIMIT
9c2f69f8631e 24.25% 5.203MiB / 5.877GiB
c6d1f0738982 0.09% 42.78MiB / 5.877GiB
5a52bc636ec3 14.66% 948KiB / 5.877GiB
f9f8d3140cd3 0.74% 27.55MiB / 5.877GiB
e60048f81636 134.69% 49.63MiB / 5.877GiB