mirror of https://github.com/docker/docs.git
Merge pull request #1243 from dotcloud/add_lxc_version_docker_info
*Client: LXC and Kernel version to docker info in debug mode
This commit is contained in:
commit
dfc076a123
|
@ -20,11 +20,13 @@ type APIInfo struct {
|
||||||
Debug bool
|
Debug bool
|
||||||
Containers int
|
Containers int
|
||||||
Images int
|
Images int
|
||||||
NFd int `json:",omitempty"`
|
NFd int `json:",omitempty"`
|
||||||
NGoroutines int `json:",omitempty"`
|
NGoroutines int `json:",omitempty"`
|
||||||
MemoryLimit bool `json:",omitempty"`
|
MemoryLimit bool `json:",omitempty"`
|
||||||
SwapLimit bool `json:",omitempty"`
|
SwapLimit bool `json:",omitempty"`
|
||||||
NEventsListener int `json:",omitempty"`
|
LXCVersion string `json:",omitempty"`
|
||||||
|
NEventsListener int `json:",omitempty"`
|
||||||
|
KernelVersion string `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type APITop struct {
|
type APITop struct {
|
||||||
|
|
|
@ -471,7 +471,9 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
|
||||||
fmt.Fprintf(cli.out, "Debug mode (client): %v\n", os.Getenv("DEBUG") != "")
|
fmt.Fprintf(cli.out, "Debug mode (client): %v\n", os.Getenv("DEBUG") != "")
|
||||||
fmt.Fprintf(cli.out, "Fds: %d\n", out.NFd)
|
fmt.Fprintf(cli.out, "Fds: %d\n", out.NFd)
|
||||||
fmt.Fprintf(cli.out, "Goroutines: %d\n", out.NGoroutines)
|
fmt.Fprintf(cli.out, "Goroutines: %d\n", out.NGoroutines)
|
||||||
|
fmt.Fprintf(cli.out, "LXC Version: %s\n", out.LXCVersion)
|
||||||
fmt.Fprintf(cli.out, "EventsListeners: %d\n", out.NEventsListener)
|
fmt.Fprintf(cli.out, "EventsListeners: %d\n", out.NEventsListener)
|
||||||
|
fmt.Fprintf(cli.out, "Kernel Version: %s\n", out.KernelVersion)
|
||||||
}
|
}
|
||||||
if !out.MemoryLimit {
|
if !out.MemoryLimit {
|
||||||
fmt.Fprintf(cli.err, "WARNING: No memory limit support\n")
|
fmt.Fprintf(cli.err, "WARNING: No memory limit support\n")
|
||||||
|
|
|
@ -989,7 +989,10 @@ Display system-wide information
|
||||||
"NFd": 11,
|
"NFd": 11,
|
||||||
"NGoroutines":21,
|
"NGoroutines":21,
|
||||||
"MemoryLimit":true,
|
"MemoryLimit":true,
|
||||||
"SwapLimit":false
|
"SwapLimit":false,
|
||||||
|
"EventsListeners":"0",
|
||||||
|
"LXCVersion":"0.7.5",
|
||||||
|
"KernelVersion":"3.8.0-19-generic"
|
||||||
}
|
}
|
||||||
|
|
||||||
:statuscode 200: no error
|
:statuscode 200: no error
|
||||||
|
|
14
server.go
14
server.go
|
@ -252,6 +252,18 @@ func (srv *Server) DockerInfo() *APIInfo {
|
||||||
} else {
|
} else {
|
||||||
imgcount = len(images)
|
imgcount = len(images)
|
||||||
}
|
}
|
||||||
|
lxcVersion := ""
|
||||||
|
if output, err := exec.Command("lxc-version").CombinedOutput(); err == nil {
|
||||||
|
outputStr := string(output)
|
||||||
|
if len(strings.SplitN(outputStr, ":", 2)) == 2 {
|
||||||
|
lxcVersion = strings.TrimSpace(strings.SplitN(string(output), ":", 2)[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
kernelVersion := "<unknown>"
|
||||||
|
if kv, err := utils.GetKernelVersion(); err == nil {
|
||||||
|
kernelVersion = kv.String()
|
||||||
|
}
|
||||||
|
|
||||||
return &APIInfo{
|
return &APIInfo{
|
||||||
Containers: len(srv.runtime.List()),
|
Containers: len(srv.runtime.List()),
|
||||||
Images: imgcount,
|
Images: imgcount,
|
||||||
|
@ -260,7 +272,9 @@ func (srv *Server) DockerInfo() *APIInfo {
|
||||||
Debug: os.Getenv("DEBUG") != "",
|
Debug: os.Getenv("DEBUG") != "",
|
||||||
NFd: utils.GetTotalUsedFds(),
|
NFd: utils.GetTotalUsedFds(),
|
||||||
NGoroutines: runtime.NumGoroutine(),
|
NGoroutines: runtime.NumGoroutine(),
|
||||||
|
LXCVersion: lxcVersion,
|
||||||
NEventsListener: len(srv.events),
|
NEventsListener: len(srv.events),
|
||||||
|
KernelVersion: kernelVersion,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue