當 Docker 部署規模逐漸變大後,可視化監控容器環境的性能和健康狀态将會變得越來越重要。
在本章中,我們将讨論幾個目前比較常用的容器監控工具和方案,為大家建構自己的監控系統提供參考。

首先我們會讨論 Docker 自帶的幾個監控子指令:ps, top 和 stats。然後是幾個功能更強的開源監控工具 sysdig, Weave Scope, cAdvisor 和 Prometheus。最後我們會對這些不同的工具和方案做一個比較。
<code>docker container ps</code> 是我們早已熟悉的指令了,友善我們檢視目前運作的容器。
前面已經有大量示例,這裡就不贅述了。值得注意的是,新版的 Docker 提供了一個新指令 <code>docker container ls</code>,其作用和用法與 <code>docker container ps</code> 完全一樣。不過 <code>ls</code> 含義可能比 <code>ps</code> 更準确,是以更推薦使用。
如果想知道某個容器中運作了哪些程序,可以執行 <code>docker container top [container]</code> 指令。
上面顯示了 sysdig 這個容器中的程序。指令後面還可以跟上 Linux 作業系統 <code>ps</code> 指令的參數顯示特定的資訊,比如 <code>-au</code>。
<code>docker container stats</code> 用于顯示每個容器各種資源的使用情況。
預設會顯示一個實時變化的清單,展示每個容器的 CPU 使用率,記憶體使用量和可用量。
注意:容器啟動時如果沒有特别指定記憶體 limit,stats 指令會顯示 host 的記憶體總量,但這并不意味着每個 container 都能使用到這麼多的記憶體。
除此之外 <code>docker container stats</code> 指令還會顯示容器網絡和磁盤的 IO 資料。
預設的輸出有個缺點,顯示的是容器 ID 而非名字。我們可以在 <code>stats</code> 指令後面指定容器的名稱隻顯示某些容器的資料。比如 <code>docker container stats sysdig weave</code>。
ps,top, stats 這幾個指令是 docker 自帶的,優點是運作友善,很适合想快速了解容器運作狀态的場景。其缺點是輸出的資料有限,而且都是實時資料,無法反應曆史變化和趨勢。接下來要介紹的幾個監控工具會提供更豐富的功能。
下一節我們學習 sysdig。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
<a href="https://item.jd.com/16936307278.html" target="_blank">https://item.jd.com/16936307278.html</a>
2.《每天5分鐘玩轉OpenStack》
<a href="https://item.jd.com/12086376.html" target="_blank">https://item.jd.com/12086376.html</a>