每个Docker容器,各自的内存、CPU和端口。
在Mac上,Docker是一个大进程,活动监视器能告诉你的就只有这些。Vitals会去问引擎里面有什么,并给你一个“容器”标签页:每个容器的内存、CPU、网络和端口,窗口和下拉面板里都有,每个容器都带“停止”按钮。
这些数字是模拟的:网页读取不了你的Mac,也不应该读取。
深入那一个大进程,逐个容器查看。
Vitals会问引擎它的虚拟机里正在运行什么,并把每个容器单独列出:内存及其上限、CPU、收发的数据量,以及它发布的端口,让你看出哪个变大了、哪个在忙。
- 内存用量对比上限
- CPU,以及收发的数据量
- 它发布的端口
- 它的镜像,以及所属的Compose项目和服务
不管你用哪个引擎,都能直接用。
Docker Desktop、OrbStack、Colima、Lighter、Rancher Desktop和Podman都能识别,Vitals还会跟随你的docker命令所设定使用的引擎。这个标签页在引擎运行时出现,引擎停止后消失。
- Docker Desktop、OrbStack、Colima、Lighter、Rancher Desktop、Podman
- 跟随你的docker命令所用的引擎
- 有引擎运行时出现
- 只读,“停止”除外
像docker stop那样停止容器。
可以在标签页或下拉面板里停止任何容器。Vitals会先问你,给容器十秒钟正常关闭,之后才强制终止,而且从不启动、重启或移除任何东西,所以没有什么需要撤销的。
- 在标签页和下拉面板里
- 每次都先询问
- 十秒钟用来关闭,之后强制终止
- 从不启动、重启或删除
一个项目的全部占用,一行看完。
从项目文件夹用docker compose启动的容器,会显示在“项目”标签页的该项目下,挨着它的开发服务器和测试,数据是在引擎的虚拟机内部测量的,不会重复计算。退出项目,它的容器也会一起停止。
- 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中的位置
标签页、菜单栏项和设置,按你会用到的顺序排列。
- 01
打开“容器”标签页
它在有引擎运行时出现,窗口和菜单栏下拉面板里都有,下拉面板的“概览”中还会多一张“容器”卡片。由docker compose启动的容器按项目分组。
- 02
看懂一个容器
内存及其上限、CPU、收发的数据量、它发布的端口、它的镜像,以及它来自的Compose服务和文件夹。所有数据都在引擎的虚拟机内部测量,所以它是引擎内存的一部分,而不是另外叠加的。
- 03
停止一个
在标签页或下拉面板中点按容器上的“停止”。Vitals会先问你,然后像docker stop那样停止它,给它十秒钟,之后才强制终止。
- 04
跟着项目看
在“项目”标签页中,一个项目启动的容器会和它的开发服务器等内容一起归在它下面,所以一个项目的全部占用就是一行。
背后的术语
这些数字是什么意思,摘自活动监视器术语表。
问题
购买前,大家关于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相比如何。