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 }
在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流