Docker9

docker monitor

This project is maintained by wangfakang

利用docker的docker.sock进行docker的监控:

 # 功能:
该功能就是当有新的docker容器启动或是死掉的时候,会进行相应容器信息的打印.
 # 基本原理:
    利用docker client 与docker dasmon的通信机制进行检测.当有新容器启动的时
    候此时会与docker daemon进行通信.

  2 package main
  3 
  4 import (
  5         "github.com/fsouza/go-dockerclient"
  6         "log"
  7         "time"
  8 )
  9 
 10 func assert(err error, context string) {
 11         if err != nil {
 12                 log.Fatal(context+": ", err)
 13         }
 14 }
 15 
 16 func main() {
 17         client, err := docker.NewClient("unix:///var/run/docker.sock")
 18         assert(err, "docker")
 19         events := make(chan *docker.APIEvents)
 20         assert(client.AddEventListener(events), "attacher")
 21         log.Println("listening for events")
 22         for ; true ; {
 23             for msg := range events {
 24                 log.Println("event:", msg.ID[:12], msg.Status)
 25             }   
 26             time.Sleep(1 * time.Second)
 27         }
 28 }

欢迎一起交流学习

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

Thx

Author