查看容器占用资源
docker stats
Docker 提供了一个很方便的命令 docker stats,可供我们查看和统计容器所占用的资源情况。
我们仍然启动一个 Redis 容器作为示例。
# 启动一个容器(MoeLove) ➜ ~ docker run -d redis c98c9831ee73e9b71719b404f5ecf3b408de0b69aec0f781e42d815575d28ada# 查看其所占用资源的情况(MoeLove) ➜ ~ docker stats --no-stream $(docker ps -ql) CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDSc98c9831ee73 amazing_torvalds 0.08% 2.613MiB / 15.56GiB 0.02% 3.66kB / 0B 0B / 0B 4
这里传递了一个 --no-stream 的参数,是因为 docker stats 命令默认是一个持续的动态流式输出(每秒一次),给它传递 --no-stream 参数后,它就只输出一次便会退出了。
接下来我为你介绍下它输出内容的含义:
- Container ID:容器的 ID,也是一个容器生命周期内不会变更的信息。
- Name:容器的名称,如果没有手动使用 --name 参数指定,则 Docker 会随机生成一个,运行过程中也可以通过命令修改。
- CPU %:容器正在使用的 CPU 资源的百分比,这里面涉及了比较多细节,下面会详细说。
- Mem Usage/Limit:当前内存的使用及容器可用的最大内存,这里我使用了一台 16G 的电脑进行测试。
- Mem %:容器正在使用的内存资源的百分比。
- Net I/O:容器通过其网络接口发送和接受到的数据量。
- Block I/O:容器通过块设备读取和写入的数据量。
- Pids:容器创建的进程或线程数。