Docker容器監(jiān)控及日志管理實(shí)現(xiàn)過程解析
當(dāng)Docker部署規(guī)模變大后,需要對容器進(jìn)行監(jiān)控,一般Docker自帶幾個(gè)監(jiān)控子命令ps、top和stats,然后是現(xiàn)在流行的開源監(jiān)控工具Prometheus
Docker自帶的監(jiān)控子命令ps
docker ps ,列出容器,方便查看當(dāng)前的運(yùn)行的容器,以下是命令語法與參數(shù)
語法
docker ps [OPTIONS]
OPTIONS說明:
- -a :顯示所有的容器,包括未運(yùn)行的。
- -f :根據(jù)條件過濾顯示的內(nèi)容。
- --format :指定返回值的模板文件。
- -l :顯示最近創(chuàng)建的容器。
- -n :列出最近創(chuàng)建的n個(gè)容器。
- --no-trunc :不截?cái)噍敵觥?/li>
- -q :靜默模式,只顯示容器編號。
- -s :顯示總的文件大小。

輸出詳情介紹:
- CONTAINER ID: 容器 ID。
- IMAGE: 使用的鏡像。
- COMMAND: 啟動(dòng)容器時(shí)運(yùn)行的命令。
- CREATED: 容器的創(chuàng)建時(shí)間。
- STATUS: 容器狀態(tài)。
狀態(tài)有7種:
- created(已創(chuàng)建)
- restarting(重啟中)
- running(運(yùn)行中)
- removing(遷移中)
- paused(暫停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。
NAMES: 自動(dòng)分配的容器名稱。
新版的Docker提供了一個(gè)新命令docker container ls,其作用和用法與docker container ps完全一致。不過ls的含義可能比ps更準(zhǔn)確,所以推薦使用。
top
如果想知道某個(gè)容器運(yùn)行了哪些進(jìn)程,可以執(zhí)行docker container top 命令,如下所示:

命令后面還可以跟上linux操作系統(tǒng)ps命令的參數(shù)來顯示特定的信息,比如-au,這樣docker container top [容器名稱] -au執(zhí)行結(jié)果如下所示:

stats
docker container stats 用于顯示每個(gè)容器各種資源的使用情況

默認(rèn)會顯示一個(gè)實(shí)時(shí)變化的列表,展示每個(gè)容器的cpu的使用率,內(nèi)存和可用空間等。
如果容器啟動(dòng)的時(shí)候沒有特別指定內(nèi)存limit,stats命令這里會顯示host內(nèi)存的總量,但是這不意味著每個(gè)容器都能使用這么多內(nèi)存
除此之外,docker container stats命令還會顯示容器網(wǎng)絡(luò)和磁盤的IO數(shù)據(jù),可以再stats命令后面指定容器的名稱來顯示某些容器的數(shù)據(jù)

Docker logs
默認(rèn)配置下 Docker 的日志功能。
對于一個(gè)運(yùn)行的容器,Docker 會將日志發(fā)送到 容器的 標(biāo)準(zhǔn)輸出設(shè)備(STDOUT)和標(biāo)準(zhǔn)錯(cuò)誤設(shè)備(STDERR),STDOUT 和 STDERR 實(shí)際上就是容器的控制臺終端。
如果要查看容器的日志,有兩種方法:
attach 到該容器。
用 docker logs 命令查看日志。
ttach 的方法在實(shí)際使用中不太方便,因?yàn)椋?/p>
只能看到 attach 之后的日志,以前的日志不可見。
退出 attach 狀態(tài)比較麻煩(Ctrl+p 然后 Ctrl+q 組合鍵),一不小心很容器將容器殺掉(比如按下 Ctrl+C)。
查看容器日志推薦的方法是用 docker logs 命令。
如下所示:

dokcer logs能夠打印自容器啟動(dòng)以來的完整日志,并且-f參數(shù)可以繼續(xù)打印出新產(chǎn)生的日志,效果與linux的tail -f一樣
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker?安裝啟動(dòng)Jenkins的方法(docker-compose)
這篇文章主要介紹了Docker?安裝啟動(dòng)?Jenkins(docker-compose)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
Docker搭建PlantUML服務(wù)生成UML圖的實(shí)踐分享
PlantUML 是一款開源的 UML 圖形生成工具,它支持生成類圖、時(shí)序圖、用例圖、活動(dòng)圖等多種類型的 UML 圖,廣泛應(yīng)用于軟件設(shè)計(jì)、文檔編寫以及團(tuán)隊(duì)溝通中,本文給大家介紹了Docker搭建PlantUML服務(wù)生成UML圖的最佳實(shí)踐,需要的朋友可以參考下2025-03-03
docker如何查看容器啟動(dòng)命令(已運(yùn)行的容器)
Docker是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,下面這篇文章主要給大家介紹了關(guān)于docker如何查看容器啟動(dòng)命令(已運(yùn)行的容器)的相關(guān)資料,需要的朋友可以參考下2023-02-02
docker compose idea CreateProcess error=2 系統(tǒng)找不到指定的文件的問題
這篇文章主要介紹了docker compose idea CreateProcess error=2 系統(tǒng)找不到指定的文件的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Docker安裝并使用Mysql的詳細(xì)教程(實(shí)測可用!)
在日常的工作中經(jīng)常會需要將數(shù)據(jù)存在服務(wù)器,經(jīng)常用到的數(shù)據(jù)庫是mysql,下面這篇文章主要給大家介紹了關(guān)于Docker安裝并使用Mysql的詳細(xì)教程,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01

