Docker經常使用的監控方案docker
Docker自帶的監控子命令bash
ps網絡
docker container ps用來查看當前運行的容器ssh
新版的Docker提供了一個新命令docker container ls,其做用和用法與docker container ps徹底同樣。不過ls含義可能比ps更準確,因此更推薦使用 spa
top操作系統
若是想知道某個容器中運行了哪些進程,能夠執行docker container top [container]命令 命令行
上面顯示了test1這個容器中的進程。命令後面還能夠跟上Linux操做系統ps命令的參數顯示特定的信息,好比 -au 線程
stats3d
docker container stats用於顯示每一個容器各類資源的使用狀況 code
默認會顯示一個實時變化的列表,展現每一個容器的CPU使用率,內存使用量和可用量
注意:容器啓動時若是沒有特別指定內存limit,stats命令會顯示host的內存總量,但這並不意味着每一個container都能使用到這麼多的內存
除此以外docker container stats命令還會顯示容器網絡和磁盤的IO數據
默認的輸出有個缺點,顯示的是容器ID而非名字。咱們能夠在stats命令後面指定容器的名稱只顯示某些容器的數據。好比docker container stats test1 test2
ps,top, stats這幾個命令是docker自帶的,優勢是運行方便,很適合想快速瞭解容器運行狀態的場景。其缺點是輸出的數據有限,並且都是實時數據,沒法反應歷史變化和趨勢
監控利器sysdig
安裝和運行sysdig的最簡單方法是運行Docker容器,命令行爲
sudo docker run -it --name sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock --volume=/dev:/host/dev --volume=/proc:/host/proc:ro --volume=/boot:/host/boot:ro --volume=/lib/modules:/host/lib/modules:ro --volume=/usr:/host/usr:ro sysdig/sysdig
能夠看到,sysdig容器是以privileged方式運行,並且會讀取操做系統 /dev,/proc等數據,這是爲了獲取足夠的系統信息
啓動後,經過docker container exec -it sysdig bash進入容器,執行csysdig命令,將以交互方式啓動sysdig
sysdig按不一樣的View來監控不一樣類型的資源,點擊底部Views菜單(或者按F2),顯示View選擇列表
咱們將光標移到Containers這一項,界面右邊當即顯示出此view的功能介紹,回車或者雙擊Containers,進入容器監控界面
sysdig會顯示該host全部的容器的實時數據,每兩秒刷新一次。各列數據的含義也是自解釋的,若是不清楚,能夠點一下底部的Legend,若是想按某一列排序,好比按使用的內存量,點一下列頭VIRT
若是想查看某個容器的進程,將光標移動到目標容器,而後回車或者雙擊
還能夠繼續雙擊查看進程中的線程
返回上一級,按退格鍵便可
sysdig的交互功能很強,若是界面顯示的條目不少,能夠點擊底部Search菜單,而後輸入關鍵字進行查找
若是以爲界面刷新太快,看不清楚關注的信息,能夠點擊底部的Pause菜單
sysdig的特色:
(1)監控信息全,包括Linux操做系統和容器
(2)界面交互性強
其缺點是sysdig顯示的是實時數據,看不到變化和趨勢。並且是命令行操做方式,須要ssh到host上執行,不是太方便