當docker部署規模變大后,需要對容器進行監控,一般docker自帶幾個監控子命令ps、top和stats,然后是現在流行的開源監控工具prometheus
docker自帶的監控子命令ps
docker ps ,列出容器,方便查看當前的運行的容器,以下是命令語法與參數
語法
docker ps [options]
options說明:
- -a :顯示所有的容器,包括未運行的。
- -f :根據條件過濾顯示的內容。
- --format :指定返回值的模板文件。
- -l :顯示最近創建的容器。
- -n :列出最近創建的n個容器。
- --no-trunc :不截斷輸出。
- -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更準確,所以推薦使用。
top
如果想知道某個容器運行了哪些進程,可以執行docker container top 命令,如下所示:
命令后面還可以跟上linux操作系統ps命令的參數來顯示特定的信息,比如-au,這樣docker container top [容器名稱] -au執行結果如下所示:
stats
docker container stats 用于顯示每個容器各種資源的使用情況
默認會顯示一個實時變化的列表,展示每個容器的cpu的使用率,內存和可用空間等。
如果容器啟動的時候沒有特別指定內存limit,stats命令這里會顯示host內存的總量,但是這不意味著每個容器都能使用這么多內存
除此之外,docker container stats命令還會顯示容器網絡和磁盤的io數據,可以再stats命令后面指定容器的名稱來顯示某些容器的數據
docker logs
默認配置下 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一樣
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.51cto.com/11555417/2515823