github.com/circular-dark/docker@v1.7.0/api/client/restart.go (about) 1 package client 2 3 import ( 4 "fmt" 5 "net/url" 6 "strconv" 7 8 flag "github.com/docker/docker/pkg/mflag" 9 ) 10 11 // CmdRestart restarts one or more running containers. 12 // 13 // Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...] 14 func (cli *DockerCli) CmdRestart(args ...string) error { 15 cmd := cli.Subcmd("restart", "CONTAINER [CONTAINER...]", "Restart a running container", true) 16 nSeconds := cmd.Int([]string{"t", "-time"}, 10, "Seconds to wait for stop before killing the container") 17 cmd.Require(flag.Min, 1) 18 19 cmd.ParseFlags(args, true) 20 21 v := url.Values{} 22 v.Set("t", strconv.Itoa(*nSeconds)) 23 24 var errNames []string 25 for _, name := range cmd.Args() { 26 _, _, err := readBody(cli.call("POST", "/containers/"+name+"/restart?"+v.Encode(), nil, nil)) 27 if err != nil { 28 fmt.Fprintf(cli.err, "%s\n", err) 29 errNames = append(errNames, name) 30 } else { 31 fmt.Fprintf(cli.out, "%s\n", name) 32 } 33 } 34 if len(errNames) > 0 { 35 return fmt.Errorf("Error: failed to restart containers: %v", errNames) 36 } 37 return nil 38 }