docker學習-容器監控與日誌管理

當Docker部署規模變大後,須要對容器進行監控,通常Docker自帶幾個監控子命令ps、top和stats,而後是如今流行的開源監控工具Prometheuslinux

Docker自帶的監控子命令

ps

docker ps ,列出容器,方便查看當前的運行的容器,如下是命令語法與參數
語法docker

docker ps [OPTIONS]
OPTIONS說明:網絡

-a :顯示全部的容器,包括未運行的。tcp

-f :根據條件過濾顯示的內容。ide

--format :指定返回值的模板文件。工具

-l :顯示最近建立的容器。學習

-n :列出最近建立的n個容器。操作系統

--no-trunc :不截斷輸出。rest

-q :靜默模式,只顯示容器編號。日誌

-s :顯示總的文件大小。
docker學習-容器監控與日誌管理

輸出詳情介紹:

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更準確,因此推薦使用。

top

若是想知道某個容器運行了哪些進程,能夠執行docker container top 命令,以下所示:
docker學習-容器監控與日誌管理

命令後面還能夠跟上linux操做系統ps命令的參數來顯示特定的信息,好比-au,這樣docker container top [容器名稱] -au執行結果以下所示:
docker學習-容器監控與日誌管理

stats

docker container stats 用於顯示每一個容器各類資源的使用狀況

docker學習-容器監控與日誌管理
默認會顯示一個實時變化的列表,展現每一個容器的cpu的使用率,內存和可用空間等。

若是容器啓動的時候沒有特別指定內存limit,stats命令這裏會顯示host內存的總量,可是這不意味着每一個容器都能使用這麼多內存
除此以外,docker container stats命令還會顯示容器網絡和磁盤的IO數據,能夠再stats命令後面指定容器的名稱來顯示某些容器的數據

docker學習-容器監控與日誌管理

Docker logs

默認配置下 Docker 的日誌功能。

對於一個運行的容器,Docker 會將日誌發送到 容器的 標準輸出設備(STDOUT)和標準錯誤設備(STDERR),STDOUT 和 STDERR 實際上就是容器的控制檯終端。

若是要查看容器的日誌,有兩種方法:

attach 到該容器。

用 docker logs 命令查看日誌。

ttach 的方法在實際使用中不太方便,由於:

只能看到 attach 以後的日誌,之前的日誌不可見。

退出 attach 狀態比較麻煩(Ctrl+p 而後 Ctrl+q 組合鍵),一不當心很容器將容器殺掉(好比按下 Ctrl+C)。

查看容器日誌推薦的方法是用 docker logs 命令。

以下所示:

docker學習-容器監控與日誌管理

dokcer logs可以打印自容器啓動以來的完整日誌,而且-f參數能夠繼續打印出新產生的日誌,效果與linux的tail -f同樣

相關文章
相關標籤/搜索