每個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 context,就能使用。
為什麼「活動監視器」把Docker顯示為一個程序?
因為在Mac上,每個引擎都在一台Linux虛擬機器裡執行容器,而macOS只看得到這台虛擬機器。只有引擎知道裡面哪個容器用了什麼,所以Vitals會去問引擎。
Vitals能啟動或移除容器嗎?
不能。它只讀取資料,唯一的例外是「停止」,而且只在你要求並確認後才會執行。
「容器」標籤頁什麼時候會出現?
有引擎在執行時就會出現。沒有引擎,就沒有這個標籤頁。
選單列下拉式面板裡也有容器嗎?
有。下拉式面板有一個「容器」標籤頁,每個容器都有「停止」按鈕,它的「概覽」中還有一張「容器」卡片。
為什麼什麼都沒在執行,Docker還用這麼多記憶體?
不管有沒有容器在執行,虛擬機器都會保留分配給它的記憶體。Vitals顯示的是虛擬機器裡面的情況;要限制虛擬機器,得在Docker自己的設定中調整,Docker記憶體指南有一步步的說明。
Vitals會顯示Compose專案嗎?
會。由docker compose啟動的容器會附帶專案名稱、服務名稱和啟動時所在的檔案夾,並顯示在「專案」標籤頁的該專案下。
需要安裝docker指令嗎?
不需要。Vitals直接與引擎溝通。如果有安裝docker指令,Vitals會讀取它設定使用的引擎,所以即使是Vitals從沒聽過的引擎也能使用。
繼續閱讀
用到它的指南,以及Vitals和大家為此購買的App比起來如何。