pause.go 822 B

123456789101112131415161718192021222324252627282930313233343536
  1. package client
  2. import (
  3. "fmt"
  4. "strings"
  5. "golang.org/x/net/context"
  6. Cli "github.com/docker/docker/cli"
  7. flag "github.com/docker/docker/pkg/mflag"
  8. )
  9. // CmdPause pauses all processes within one or more containers.
  10. //
  11. // Usage: docker pause CONTAINER [CONTAINER...]
  12. func (cli *DockerCli) CmdPause(args ...string) error {
  13. cmd := Cli.Subcmd("pause", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["pause"].Description, true)
  14. cmd.Require(flag.Min, 1)
  15. cmd.ParseFlags(args, true)
  16. ctx := context.Background()
  17. var errs []string
  18. for _, name := range cmd.Args() {
  19. if err := cli.client.ContainerPause(ctx, name); err != nil {
  20. errs = append(errs, err.Error())
  21. } else {
  22. fmt.Fprintf(cli.out, "%s\n", name)
  23. }
  24. }
  25. if len(errs) > 0 {
  26. return fmt.Errorf("%s", strings.Join(errs, "\n"))
  27. }
  28. return nil
  29. }