插件窝 干货文章 怎么看docker容器占用内存

怎么看docker容器占用内存

容器 Docker 使用 内存 792    来源:    2025-04-28

查看Docker容器内存占用的方法

作为IT工程师,查看Docker容器内存占用有以下几种常用方法:

1. 使用docker stats命令

docker stats [容器ID或名称]

这会显示所有运行中容器的实时资源使用情况,包括: - 内存使用量(MEM USAGE) - 内存限制(MEM LIMIT) - 内存使用百分比(MEM %) - CPU使用率等

2. 使用docker inspect命令

docker inspect --format='{{.Id}} {{.Name}} {{.HostConfig.Memory}} {{.State.Pid}}' $(docker ps -q)

或者获取更详细的内存信息:

docker inspect <容器ID> | grep -i memory

3. 使用Linux系统工具

通过容器PID查看:

# 获取容器PID
docker inspect -f '{{.State.Pid}}' <容器ID>

# 然后使用top/htop查看
top -p <PID>

# 或者使用ps
ps -p <PID> -o %mem,rss

4. 使用cgroup信息

cat /sys/fs/cgroup/memory/docker/<容器ID>/memory.usage_in_bytes
cat /sys/fs/cgroup/memory/docker/<容器ID>/memory.stat

5. 使用docker top命令

docker top <容器ID>

内存分析工具推荐

  1. cAdvisor:Google开源的容器监控工具
  2. Prometheus + Grafana:监控和可视化方案
  3. Portainer:Docker管理UI工具

内存问题排查建议

如果发现内存占用异常: 1. 检查应用是否有内存泄漏 2. 调整容器内存限制:docker update --memory <限制> <容器ID> 3. 使用docker exec进入容器检查进程内存使用 4. 考虑使用--memory-swap参数调整交换空间

需要更详细的分析时,可以使用jmapheapdump等工具对Java应用进行堆分析。