Docker容器監控及日志管理實現過程解析
當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: 容器的端口信息和使用的連接類型(tcpudp)。
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一樣
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: