每个Docker容器,各自的内存、CPU和端口。

在Mac上,Docker是一个大进程,活动监视器能告诉你的就只有这些。Vitals会去问引擎里面有什么,并给你一个“容器”标签页:每个容器的内存、CPU、网络和端口,窗口和下拉面板里都有,每个容器都带“停止”按钮。

各类型内存
82%
已使用
App 22.15 GB
联动 5.67 GB
被压缩 24.54 GB
已缓存 10.32 GB
可用 1.32 GB
各App的内存
59.25 GB
所有App
Google Chrome 21.23 GB
VS Code 8.17 GB
Terminal 3.86 GB
Safari 2.69 GB
其他 23.30 GB
各App的功率
1.7 W
所有App
GitHub Desktop 427 mW
Google Chrome 367 mW
Zoom 145 mW
Terminal 86 mW
其他 650 mW
当前
27 %
今日平均36%
负载3.41
用户
19%
你的App
系统
8%
macOS
内核
12
8 P4 E
占用最多的App
Google Chrome
18.2%
AppCPU
Google Chrome
96个进程
–
终端
49个进程
–
Safari
16个进程
–
Docker
9个进程
–
Visual Studio Code
63个进程
–
Slack
13个进程
–
Figma
14个进程
–
Zoom
8个进程
–
已使用,共64 GB
52.63 GB
正常
可用11.37 GB
交换0 MB
App
23.43 GB
联动
5.37 GB
被压缩
23.82 GB
占用最多的App
Google Chrome
20.59 GB
App内存
Google Chrome
96个进程
–
Visual Studio Code
63个进程
–
终端
49个进程
–
Safari
16个进程
–
Docker
9个进程
–
Slack
13个进程
–
Figma
14个进程
–
Zoom
8个进程
–
可用,共994.66 GB
479.72 GB
已使用514.94 GB
今日写入38.9 GB
读取速度
737 kB/s
写入速度
195 kB/s
宗卷
2
Macintosh HDBackup
占用最多的App
Photos
121 kB/s
App写入速度
照片
6个进程
–
Google Chrome
96个进程
–
Docker
9个进程
–
Visual Studio Code
63个进程
–
Xcode
22个进程
–
邮件
4个进程
–
Slack
13个进程
–
音乐
5个进程
–
正在下载
12 kB/s
今天4.4 GB
过去30天212 GB
正在上传
419 kB/s
过去7天
48.3 GB
接口
Wi-Fi
en0
占用最多的App
Safari
8 kB/s
App正在下载
Safari
16个进程
–
Google Chrome
96个进程
–
Slack
13个进程
–
Zoom
8个进程
–
音乐
5个进程
–
邮件
4个进程
–
Docker
9个进程
–
Notion
6个进程
–
Apple M2 Max
60 %
平均32%
峰值95%
内存
1.69 GB
平均
32%
峰值
95%
占用最多的App
Figma
35%
AppGPU
Figma
14个进程
–
Google Chrome
96个进程
–
Safari
16个进程
–
Zoom
8个进程
–
Visual Studio Code
63个进程
–
Xcode
22个进程
–
Slack
13个进程
–
Notion
6个进程
–
16核神经网络引擎
2 %
平均3%
峰值16%
内存流量
79.9 MB/s
平均
3%
峰值
16%
占用最多的App
照片
3个连接
App神经网络引擎
照片
6个进程
–
Xcode
22个进程
–
Safari
16个进程
–
Zoom
8个进程
–
邮件
4个进程
–
Notion
6个进程
–
Google Chrome
96个进程
–
电池供电
64 %
剩余时间2小时46分钟
循环次数412
耗电功率
12.6 W
健康度
76%
温度
31°
占用最多的App
Google Chrome
4.3 W
App功率
Google Chrome
96个进程
–
Zoom
8个进程
–
Figma
14个进程
–
Slack
13个进程
–
Safari
16个进程
–
Visual Studio Code
63个进程
–
Docker
9个进程
–
音乐
5个进程
–
输出
MacBook Pro扬声器
64%
App状态音量电平
音乐 正在播放 100%
Zoom 正在播放 80%
Google Chrome 正在播放 35%
Slack 无声 已静音
Safari 无声 100%
Figma 无声 100%
Notion 无声 100%
邮件 无声 100%
已连接3个
电量最低:AirPods Pro左耳,42%。Beats Fit Pro已配对但不在附近。
42% 蓝牙设置
设备种类电池电平
AirPods Pro 耳机
左耳 42%
右耳 58%
充电盒 80%
Magic Trackpad 触控板 67%
Magic Keyboard 键盘 91%
4个开发服务器在运行但处于闲置
停止它们可释放1.37 GB和端口3000, 4321, 4322, 8000。
全部停止…
storefront
9个进程
工作中
1.18 GB
storefront-web
node
4322 已运行3天,几乎未使用
458 MB
scraper-api
python
8000 已运行4天,几乎未使用
412 MB
marketing-site
node
4321 闲置2小时
296 MB
billing-api
node
30009229 闲置45分钟
204 MB
docs
node
5173
188 MB
ml-notebooks
python
8888
164 MB
design-tokens
node
6006 闲置20分钟
121 MB
infra
3个进程
96 MB
auth-service
go
8080
74 MB
email-templates
node
3030 闲置3小时
58 MB
0%
Claude
本周
合拍 · 余量10%
0%
Codex
5小时会话
3h 12m后重置
0%
GitHub Copilot
高级请求
按此速度4d后用完
0%
Cursor
本计费周期
12d 5h后重置
Checkout flow tests 工作中 在等你
Claude Code · storefront · 已运行48 min
410 MB
已启动 · 4 退出会话…
vitest 命令 · CPU 61% 520 MB
node 服务器 · 端口3,001 240 MB
Google Chrome for Testing 浏览器 310 MB
mcp-server-fetch 工具服务器 64 MB
Codex 闲置48分钟
docs · 在Terminal中 · 未启动任何内容
290 MB
Docker中有4个容器
674MB
最低592.3 MB
峰值674 MB
按容器
postgres312 MB46%
rabbitmq206 MB31%
minio142 MB21%
redis14 MB2%
CPU
3.0%
postgres占用最多
最接近上限
rabbitmq
占240 MB的86%
网络
9kB/s
↓ 6 kB/s · ↑ 3 kB/s
已发布端口
6
5433567263799000+2
storefront 2个容器
由Docker Compose一同启动 · 2个端口 · 2个正在运行
1.9% 326 MB
postgres postgres:16
Up 5 hours
5433
1.6% 312 MB
redis redis:7-alpine
Up 5 hours
6379
0.3% 14 MB
api 1个容器
由Docker Compose一同启动 · 2个端口 · 1个正在运行
0.9% 206 MB
rabbitmq rabbitmq:3-management
Up 3 hours
567215672 占240 MB的86%
0.9% 206 MB
minio minio/minio
Up 26 hours
90009001
0.2% 142 MB

这些数字是模拟的:网页读取不了你的Mac,也不应该读取。

01容器

深入那一个大进程,逐个容器查看。

Vitals会问引擎它的虚拟机里正在运行什么,并把每个容器单独列出:内存及其上限、CPU、收发的数据量,以及它发布的端口,让你看出哪个变大了、哪个在忙。

  • 内存用量对比上限
  • CPU,以及收发的数据量
  • 它发布的端口
  • 它的镜像,以及所属的Compose项目和服务
shopcompose · ~/Projects/shop3个容器 · 2.0 GB
postgrespostgres:164%↓1.2 ↑0.4 MB/s:5432
1.4 GB/2 GB
redisredis:71%↓0.1 ↑0.1:6379
96 MB/512 MB
apishop-api38%↓3.8 ↑12:8080
512 MB/1 GB
内存用量对比上限 在引擎的虚拟机内部
02引擎

不管你用哪个引擎,都能直接用。

Docker Desktop、OrbStack、Colima、Lighter、Rancher Desktop和Podman都能识别,Vitals还会跟随你的docker命令所设定使用的引擎。这个标签页在引擎运行时出现,引擎停止后消失。

  • Docker Desktop、OrbStack、Colima、Lighter、Rancher Desktop、Podman
  • 跟随你的docker命令所用的引擎
  • 有引擎运行时出现
  • 只读,“停止”除外
Docker Desktop未运行
OrbStack运行中
Colima未运行
Lighter未运行
Rancher Desktop未运行
Podman未运行
docker context showorbstack
docker正在使用的那个引擎 有引擎运行时才显示此标签页
03停止

像docker stop那样停止容器。

可以在标签页或下拉面板里停止任何容器。Vitals会先问你,给容器十秒钟正常关闭,之后才强制终止,而且从不启动、重启或移除任何东西,所以没有什么需要撤销的。

  • 在标签页和下拉面板里
  • 每次都先询问
  • 十秒钟用来关闭,之后强制终止
  • 从不启动、重启或删除
概览内存项目代理容器
postgres1.4 GB:5432停止
redis96 MB:6379停止
api512 MB:8080停止
要停止postgres吗?
给它10秒钟关闭,之后强制终止。不会删除。
取消停止
和docker stop一样 从不启动、重启或删除
04项目

一个项目的全部占用,一行看完。

从项目文件夹用docker compose启动的容器,会显示在“项目”标签页的该项目下,挨着它的开发服务器和测试,数据是在引擎的虚拟机内部测量的,不会重复计算。退出项目,它的容器也会一起停止。

  • Compose容器排在所属项目下
  • 挨着项目的开发服务器和测试
  • 在引擎的虚拟机内部测量,而不是另外叠加
  • 退出项目,同时停止它的容器
shop2.4 GB · 41% CPU退出
next dev:3000412 MB
vitest2个工作进程380 MB
postgres:5432容器1.4 GB
redis:6379容器96 MB
api:8080容器512 MB
docsastro dev :4321210 MB
Compose容器排在所属项目下 一键全部退出
为什么重要

Docker容器:之前与之后

在Mac上,Docker是一个进程。每个引擎都在一台Linux虚拟机里运行容器,macOS看到的是这台虚拟机,而不是里面的东西。活动监视器显示引擎占了8 GB,仅此而已。哪个容器变大了、哪个在忙、哪个占着端口:引擎知道,macOS不知道。

于是一台跑着几个项目容器的Mac内存不够用了,而原因只是一行你打不开的进程。

Vitals去问引擎,并显示一个“容器”标签页:每个容器的内存及其上限、CPU、收发的数据量和端口,窗口和下拉面板里都有,按Compose项目分组,并显示服务名和启动时所在的文件夹。确认后可以像docker stop那样停止容器;Vitals从不启动、重启或移除任何东西。支持Docker Desktop、OrbStack、Colima、Lighter、Rancher Desktop和Podman,以及你的docker命令所设定使用的任何引擎。

使用方法

在Vitals中的位置

标签页、菜单栏项和设置,按你会用到的顺序排列。

  1. 01

    打开“容器”标签页

    它在有引擎运行时出现,窗口和菜单栏下拉面板里都有,下拉面板的“概览”中还会多一张“容器”卡片。由docker compose启动的容器按项目分组。

  2. 02

    看懂一个容器

    内存及其上限、CPU、收发的数据量、它发布的端口、它的镜像,以及它来自的Compose服务和文件夹。所有数据都在引擎的虚拟机内部测量,所以它是引擎内存的一部分,而不是另外叠加的。

  3. 03

    停止一个

    在标签页或下拉面板中点按容器上的“停止”。Vitals会先问你,然后像docker stop那样停止它,给它十秒钟,之后才强制终止。

  4. 04

    跟着项目看

    在“项目”标签页中,一个项目启动的容器会和它的开发服务器等内容一起归在它下面,所以一个项目的全部占用就是一行。

对比

Docker容器:活动监视器与Vitals

完整对比会逐项列出。以下是与Docker容器有关的几项。

活动监视器 Vitals
容器
活动监视器整个引擎只有一个进程
Vitals每个容器单独显示
内存
活动监视器虚拟机的总量
Vitals按容器显示,并对照其上限
端口
活动监视器不显示
Vitals每个容器的已发布端口
停止
活动监视器在“终端”中用docker stop
Vitals确认后停止
引擎
活动监视器一行显示,不管是哪个引擎
VitalsDocker Desktop、OrbStack、Colima、Lighter、Rancher Desktop、Podman

背后的术语

这些数字是什么意思,摘自活动监视器术语表。

问题

购买前,大家关于Docker容器最常问的问题。

Vitals支持哪些Docker引擎?

Docker Desktop、OrbStack、Colima、Lighter、Rancher Desktop和Podman。Vitals还会跟随你的docker命令所设定使用的引擎,所以即使是它从没听说过的引擎,只要注册了Docker上下文,也能用。

为什么活动监视器把Docker显示为一个进程?

因为在Mac上,每个引擎都在一台Linux虚拟机里运行容器,而macOS只能看到这台虚拟机。只有引擎知道里面哪个容器用了什么,所以Vitals去问引擎。

Vitals能启动或移除容器吗?

不能。它只读取数据,唯一的例外是“停止”,而且只在你要求并确认后才执行。

“容器”标签页什么时候出现?

有引擎运行时就会出现。没有引擎,就没有这个标签页。

菜单栏下拉面板里也有容器吗?

有。下拉面板有一个“容器”标签页,每个容器都带“停止”按钮,它的“概览”中还有一张“容器”卡片。

为什么什么都没运行,Docker还占这么多内存?

不管有没有容器在运行,虚拟机都会占着分给它的内存。Vitals显示的是虚拟机里面的情况;给虚拟机设上限要在Docker自己的设置里操作,Docker内存指南里有详细步骤。

Vitals会显示Compose项目吗?

会。由docker compose启动的容器会带上项目名、服务名和启动时所在的文件夹,并显示在“项目”标签页的该项目下。

需要安装docker命令吗?

不需要。Vitals直接与引擎通信。如果装了docker命令,Vitals会读取它设定使用的引擎,所以即使是Vitals从没听说过的引擎也能用。

继续阅读

用到它的指南,以及Vitals与大家为此购买的App相比如何。

Vitals的更多功能

全部功能

趁首发价还在,以$15购买Vitals

此价位剩余50份。 常规价格为$39。一次付款,终身更新,14天内可退款。

购买Vitals $15