// NewImagesCommand creates a new `docker images` command func NewImagesCommand(dockerCli *command.DockerCli) *cobra.Command { opts := imagesOptions{filter: opts.NewFilterOpt()} cmd := &cobra.Command{ Use: "images [OPTIONS] [REPOSITORY[:TAG]]", Short: "List images", Args: cli.RequiresMaxArgs(1), RunE: func(cmd *cobra.Command, args []string) error { if len(args) > 0 { opts.matchName = args[0] } return runImages(dockerCli, opts) }, } flags := cmd.Flags() flags.BoolVarP(&opts.quiet, "quiet", "q", false, "Only show numeric IDs") flags.BoolVarP(&opts.all, "all", "a", false, "Show all images (default hides intermediate images)") flags.BoolVar(&opts.noTrunc, "no-trunc", false, "Don't truncate output") flags.BoolVar(&opts.showDigests, "digests", false, "Show digests") flags.StringVar(&opts.format, "format", "", "Pretty-print images using a Go template") flags.VarP(&opts.filter, "filter", "f", "Filter output based on conditions provided") return cmd }
func newCreateCommand(dockerCli *client.DockerCli) *cobra.Command { opts := createOptions{ driverOpts: *opts.NewMapOpts(nil, nil), } cmd := &cobra.Command{ Use: "create [OPTIONS] [VOLUME]", Short: "Create a volume", Long: createDescription, Args: cli.RequiresMaxArgs(1), RunE: func(cmd *cobra.Command, args []string) error { if len(args) == 1 { if opts.name != "" { fmt.Fprint(dockerCli.Err(), "Conflicting options: either specify --name or provide positional arg, not both\n") return cli.StatusError{StatusCode: 1} } opts.name = args[0] } return runCreate(dockerCli, opts) }, } flags := cmd.Flags() flags.StringVarP(&opts.driver, "driver", "d", "local", "Specify volume driver name") flags.StringVar(&opts.name, "name", "", "Specify volume name") flags.Lookup("name").Hidden = true flags.VarP(&opts.driverOpts, "opt", "o", "Set driver specific options") flags.StringSliceVar(&opts.labels, "label", []string{}, "Set metadata for a volume") return cmd }
// NewLoginCommand creates a new `docker login` command func NewLoginCommand(dockerCli *command.DockerCli) *cobra.Command { var opts loginOptions cmd := &cobra.Command{ Use: "login [OPTIONS] [SERVER]", Short: "Log in to a Docker registry.", Long: "Log in to a Docker registry.\nIf no server is specified, the default is defined by the daemon.", Args: cli.RequiresMaxArgs(1), RunE: func(cmd *cobra.Command, args []string) error { if len(args) > 0 { opts.serverAddress = args[0] } return runLogin(dockerCli, opts) }, } flags := cmd.Flags() flags.StringVarP(&opts.user, "username", "u", "", "Username") flags.StringVarP(&opts.password, "password", "p", "", "Password") // Deprecated in 1.11: Should be removed in docker 1.13 flags.StringVarP(&opts.email, "email", "e", "", "Email") flags.MarkDeprecated("email", "will be removed in 1.13.") return cmd }
// NewLogoutCommand creates a new `docker login` command func NewLogoutCommand(dockerCli *client.DockerCli) *cobra.Command { cmd := &cobra.Command{ Use: "logout [SERVER]", Short: "Log out from a Docker registry.", Long: "Log out from a Docker registry.\nIf no server is specified, the default is defined by the daemon.", Args: cli.RequiresMaxArgs(1), RunE: func(cmd *cobra.Command, args []string) error { var serverAddress string if len(args) > 0 { serverAddress = args[0] } return runLogout(dockerCli, serverAddress) }, } return cmd }
// NewDiskUsageCommand creates a new cobra.Command for `docker df` func NewDiskUsageCommand(dockerCli *command.DockerCli) *cobra.Command { var opts diskUsageOptions cmd := &cobra.Command{ Use: "df [OPTIONS]", Short: "Show docker disk usage", Args: cli.RequiresMaxArgs(1), RunE: func(cmd *cobra.Command, args []string) error { return runDiskUsage(dockerCli, opts) }, } flags := cmd.Flags() flags.BoolVarP(&opts.verbose, "verbose", "v", false, "Show detailed information on space usage") return cmd }