mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #2773 from dotcloud/speed_up_docker_ps
speedup docker ps
This commit is contained in:
commit
b4f7078a02
1 changed files with 8 additions and 10 deletions
18
server.go
18
server.go
|
@ -650,6 +650,12 @@ func (srv *Server) Containers(all, size bool, n int, since, before string) []API
|
||||||
var displayed int
|
var displayed int
|
||||||
out := []APIContainers{}
|
out := []APIContainers{}
|
||||||
|
|
||||||
|
names := map[string][]string{}
|
||||||
|
srv.runtime.containerGraph.Walk("/", func(p string, e *gograph.Entity) error {
|
||||||
|
names[e.ID()] = append(names[e.ID()], p)
|
||||||
|
return nil
|
||||||
|
}, -1)
|
||||||
|
|
||||||
for _, container := range srv.runtime.List() {
|
for _, container := range srv.runtime.List() {
|
||||||
if !container.State.Running && !all && n == -1 && since == "" && before == "" {
|
if !container.State.Running && !all && n == -1 && since == "" && before == "" {
|
||||||
continue
|
continue
|
||||||
|
@ -670,25 +676,17 @@ func (srv *Server) Containers(all, size bool, n int, since, before string) []API
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
displayed++
|
displayed++
|
||||||
c := createAPIContainer(container, size, srv.runtime)
|
c := createAPIContainer(names[container.ID], container, size, srv.runtime)
|
||||||
out = append(out, c)
|
out = append(out, c)
|
||||||
}
|
}
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
func createAPIContainer(container *Container, size bool, runtime *Runtime) APIContainers {
|
func createAPIContainer(names []string, container *Container, size bool, runtime *Runtime) APIContainers {
|
||||||
c := APIContainers{
|
c := APIContainers{
|
||||||
ID: container.ID,
|
ID: container.ID,
|
||||||
}
|
}
|
||||||
names := []string{}
|
|
||||||
runtime.containerGraph.Walk("/", func(p string, e *gograph.Entity) error {
|
|
||||||
if e.ID() == container.ID {
|
|
||||||
names = append(names, p)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}, -1)
|
|
||||||
c.Names = names
|
c.Names = names
|
||||||
|
|
||||||
c.Image = runtime.repositories.ImageName(container.Image)
|
c.Image = runtime.repositories.ImageName(container.Image)
|
||||||
c.Command = fmt.Sprintf("%s %s", container.Path, strings.Join(container.Args, " "))
|
c.Command = fmt.Sprintf("%s %s", container.Path, strings.Join(container.Args, " "))
|
||||||
c.Created = container.Created.Unix()
|
c.Created = container.Created.Unix()
|
||||||
|
|
Loading…
Add table
Reference in a new issue