當Docker部署規模變大後,須要對容器進行監控,通常Docker自帶幾個監控子命令ps、top和stats,而後是如今流行的開源監控工具Prometheuslinux
docker ps ,列出容器,方便查看當前的運行的容器,如下是命令語法與參數
語法docker
docker ps [OPTIONS]
OPTIONS說明:網絡
-a :顯示全部的容器,包括未運行的。tcp
-f :根據條件過濾顯示的內容。ide
--format :指定返回值的模板文件。工具
-l :顯示最近建立的容器。學習
-n :列出最近建立的n個容器。操作系統
--no-trunc :不截斷輸出。rest
-q :靜默模式,只顯示容器編號。日誌
-s :顯示總的文件大小。
輸出詳情介紹:
CONTAINER ID: 容器 ID。
IMAGE: 使用的鏡像。
COMMAND: 啓動容器時運行的命令。
CREATED: 容器的建立時間。
STATUS: 容器狀態。
狀態有7種:
created(已建立)
restarting(重啓中)
running(運行中)
removing(遷移中)
paused(暫停)
exited(中止)
dead(死亡)
PORTS: 容器的端口信息和使用的鏈接類型(tcp\udp)。
NAMES: 自動分配的容器名稱。
新版的Docker提供了一個新命令docker container ls,其做用和用法與docker container ps徹底一致。不過ls的含義可能比ps更準確,因此推薦使用。
若是想知道某個容器運行了哪些進程,能夠執行docker container top 命令,以下所示:
命令後面還能夠跟上linux操做系統ps命令的參數來顯示特定的信息,好比-au,這樣docker container top [容器名稱] -au執行結果以下所示:
docker container stats 用於顯示每一個容器各類資源的使用狀況
默認會顯示一個實時變化的列表,展現每一個容器的cpu的使用率,內存和可用空間等。
若是容器啓動的時候沒有特別指定內存limit,stats命令這裏會顯示host內存的總量,可是這不意味着每一個容器都能使用這麼多內存
除此以外,docker container stats命令還會顯示容器網絡和磁盤的IO數據,能夠再stats命令後面指定容器的名稱來顯示某些容器的數據
默認配置下 Docker 的日誌功能。
對於一個運行的容器,Docker 會將日誌發送到 容器的 標準輸出設備(STDOUT)和標準錯誤設備(STDERR),STDOUT 和 STDERR 實際上就是容器的控制檯終端。
若是要查看容器的日誌,有兩種方法:
attach 到該容器。
用 docker logs 命令查看日誌。
ttach 的方法在實際使用中不太方便,由於:
只能看到 attach 以後的日誌,之前的日誌不可見。
退出 attach 狀態比較麻煩(Ctrl+p 而後 Ctrl+q 組合鍵),一不當心很容器將容器殺掉(好比按下 Ctrl+C)。
查看容器日誌推薦的方法是用 docker logs 命令。
以下所示:
dokcer logs可以打印自容器啓動以來的完整日誌,而且-f參數能夠繼續打印出新產生的日誌,效果與linux的tail -f同樣