mirror of https://github.com/docker/cli.git
Move canonical image and container commands into a command group
Hide some top level commands Add docker container and image inspect commands. Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
a151a36595
commit
accc5d5bd4
|
@ -25,49 +25,58 @@ func AddCommands(cmd *cobra.Command, dockerCli *command.DockerCli) {
|
||||||
stack.NewStackCommand(dockerCli),
|
stack.NewStackCommand(dockerCli),
|
||||||
stack.NewTopLevelDeployCommand(dockerCli),
|
stack.NewTopLevelDeployCommand(dockerCli),
|
||||||
swarm.NewSwarmCommand(dockerCli),
|
swarm.NewSwarmCommand(dockerCli),
|
||||||
container.NewAttachCommand(dockerCli),
|
container.NewContainerCommand(dockerCli),
|
||||||
container.NewCommitCommand(dockerCli),
|
image.NewImageCommand(dockerCli),
|
||||||
container.NewCopyCommand(dockerCli),
|
|
||||||
container.NewCreateCommand(dockerCli),
|
|
||||||
container.NewDiffCommand(dockerCli),
|
|
||||||
container.NewExecCommand(dockerCli),
|
|
||||||
container.NewExportCommand(dockerCli),
|
|
||||||
container.NewKillCommand(dockerCli),
|
|
||||||
container.NewLogsCommand(dockerCli),
|
|
||||||
container.NewPauseCommand(dockerCli),
|
|
||||||
container.NewPortCommand(dockerCli),
|
|
||||||
container.NewPsCommand(dockerCli),
|
|
||||||
container.NewRenameCommand(dockerCli),
|
|
||||||
container.NewRestartCommand(dockerCli),
|
|
||||||
container.NewRmCommand(dockerCli),
|
|
||||||
container.NewRunCommand(dockerCli),
|
container.NewRunCommand(dockerCli),
|
||||||
container.NewStartCommand(dockerCli),
|
|
||||||
container.NewStatsCommand(dockerCli),
|
|
||||||
container.NewStopCommand(dockerCli),
|
|
||||||
container.NewTopCommand(dockerCli),
|
|
||||||
container.NewUnpauseCommand(dockerCli),
|
|
||||||
container.NewUpdateCommand(dockerCli),
|
|
||||||
container.NewWaitCommand(dockerCli),
|
|
||||||
image.NewBuildCommand(dockerCli),
|
image.NewBuildCommand(dockerCli),
|
||||||
image.NewHistoryCommand(dockerCli),
|
|
||||||
image.NewImagesCommand(dockerCli),
|
|
||||||
image.NewLoadCommand(dockerCli),
|
|
||||||
image.NewRemoveCommand(dockerCli),
|
|
||||||
image.NewSaveCommand(dockerCli),
|
|
||||||
image.NewPullCommand(dockerCli),
|
|
||||||
image.NewPushCommand(dockerCli),
|
|
||||||
image.NewSearchCommand(dockerCli),
|
|
||||||
image.NewImportCommand(dockerCli),
|
|
||||||
image.NewTagCommand(dockerCli),
|
|
||||||
network.NewNetworkCommand(dockerCli),
|
network.NewNetworkCommand(dockerCli),
|
||||||
system.NewEventsCommand(dockerCli),
|
system.NewEventsCommand(dockerCli),
|
||||||
system.NewInspectCommand(dockerCli),
|
|
||||||
registry.NewLoginCommand(dockerCli),
|
registry.NewLoginCommand(dockerCli),
|
||||||
registry.NewLogoutCommand(dockerCli),
|
registry.NewLogoutCommand(dockerCli),
|
||||||
system.NewVersionCommand(dockerCli),
|
system.NewVersionCommand(dockerCli),
|
||||||
volume.NewVolumeCommand(dockerCli),
|
volume.NewVolumeCommand(dockerCli),
|
||||||
system.NewInfoCommand(dockerCli),
|
system.NewInfoCommand(dockerCli),
|
||||||
|
hide(container.NewAttachCommand(dockerCli)),
|
||||||
|
hide(container.NewCommitCommand(dockerCli)),
|
||||||
|
hide(container.NewCopyCommand(dockerCli)),
|
||||||
|
hide(container.NewCreateCommand(dockerCli)),
|
||||||
|
hide(container.NewDiffCommand(dockerCli)),
|
||||||
|
hide(container.NewExecCommand(dockerCli)),
|
||||||
|
hide(container.NewExportCommand(dockerCli)),
|
||||||
|
hide(container.NewKillCommand(dockerCli)),
|
||||||
|
hide(container.NewLogsCommand(dockerCli)),
|
||||||
|
hide(container.NewPauseCommand(dockerCli)),
|
||||||
|
hide(container.NewPortCommand(dockerCli)),
|
||||||
|
hide(container.NewPsCommand(dockerCli)),
|
||||||
|
hide(container.NewRenameCommand(dockerCli)),
|
||||||
|
hide(container.NewRestartCommand(dockerCli)),
|
||||||
|
hide(container.NewRmCommand(dockerCli)),
|
||||||
|
hide(container.NewStartCommand(dockerCli)),
|
||||||
|
hide(container.NewStatsCommand(dockerCli)),
|
||||||
|
hide(container.NewStopCommand(dockerCli)),
|
||||||
|
hide(container.NewTopCommand(dockerCli)),
|
||||||
|
hide(container.NewUnpauseCommand(dockerCli)),
|
||||||
|
hide(container.NewUpdateCommand(dockerCli)),
|
||||||
|
hide(container.NewWaitCommand(dockerCli)),
|
||||||
|
hide(image.NewHistoryCommand(dockerCli)),
|
||||||
|
hide(image.NewImagesCommand(dockerCli)),
|
||||||
|
hide(image.NewImportCommand(dockerCli)),
|
||||||
|
hide(image.NewLoadCommand(dockerCli)),
|
||||||
|
hide(image.NewPullCommand(dockerCli)),
|
||||||
|
hide(image.NewPushCommand(dockerCli)),
|
||||||
|
hide(image.NewRemoveCommand(dockerCli)),
|
||||||
|
hide(image.NewSaveCommand(dockerCli)),
|
||||||
|
hide(image.NewSearchCommand(dockerCli)),
|
||||||
|
hide(image.NewTagCommand(dockerCli)),
|
||||||
|
hide(system.NewInspectCommand(dockerCli)),
|
||||||
)
|
)
|
||||||
checkpoint.NewCheckpointCommand(cmd, dockerCli)
|
checkpoint.NewCheckpointCommand(cmd, dockerCli)
|
||||||
plugin.NewPluginCommand(cmd, dockerCli)
|
plugin.NewPluginCommand(cmd, dockerCli)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func hide(cmd *cobra.Command) *cobra.Command {
|
||||||
|
cmdCopy := *cmd
|
||||||
|
cmdCopy.Hidden = true
|
||||||
|
cmdCopy.Aliases = []string{}
|
||||||
|
return &cmdCopy
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
package container
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"github.com/docker/docker/cli"
|
||||||
|
"github.com/docker/docker/cli/command"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewContainerCommand returns a cobra command for `container` subcommands
|
||||||
|
func NewContainerCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "container",
|
||||||
|
Short: "Manage Docker containers",
|
||||||
|
Args: cli.NoArgs,
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
fmt.Fprintf(dockerCli.Err(), "\n"+cmd.UsageString())
|
||||||
|
},
|
||||||
|
}
|
||||||
|
cmd.AddCommand(
|
||||||
|
NewAttachCommand(dockerCli),
|
||||||
|
NewCommitCommand(dockerCli),
|
||||||
|
NewCopyCommand(dockerCli),
|
||||||
|
NewCreateCommand(dockerCli),
|
||||||
|
NewDiffCommand(dockerCli),
|
||||||
|
NewExecCommand(dockerCli),
|
||||||
|
NewExportCommand(dockerCli),
|
||||||
|
NewKillCommand(dockerCli),
|
||||||
|
NewLogsCommand(dockerCli),
|
||||||
|
NewPauseCommand(dockerCli),
|
||||||
|
NewPortCommand(dockerCli),
|
||||||
|
NewRenameCommand(dockerCli),
|
||||||
|
NewRestartCommand(dockerCli),
|
||||||
|
NewRmCommand(dockerCli),
|
||||||
|
NewRunCommand(dockerCli),
|
||||||
|
NewStartCommand(dockerCli),
|
||||||
|
NewStatsCommand(dockerCli),
|
||||||
|
NewStopCommand(dockerCli),
|
||||||
|
NewTopCommand(dockerCli),
|
||||||
|
NewUnpauseCommand(dockerCli),
|
||||||
|
NewUpdateCommand(dockerCli),
|
||||||
|
NewWaitCommand(dockerCli),
|
||||||
|
newListCommand(dockerCli),
|
||||||
|
newInspectCommand(dockerCli),
|
||||||
|
)
|
||||||
|
return cmd
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package container
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/net/context"
|
||||||
|
|
||||||
|
"github.com/docker/docker/cli"
|
||||||
|
"github.com/docker/docker/cli/command"
|
||||||
|
"github.com/docker/docker/cli/command/inspect"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
type inspectOptions struct {
|
||||||
|
format string
|
||||||
|
size bool
|
||||||
|
refs []string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newInspectCommand creates a new cobra.Command for `docker container inspect`
|
||||||
|
func newInspectCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
var opts inspectOptions
|
||||||
|
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "inspect [OPTIONS] CONTAINER [CONTAINER...]",
|
||||||
|
Short: "Display detailed information on one or more containers",
|
||||||
|
Args: cli.RequiresMinArgs(1),
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
opts.refs = args
|
||||||
|
return runInspect(dockerCli, opts)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
flags := cmd.Flags()
|
||||||
|
flags.StringVarP(&opts.format, "format", "f", "", "Format the output using the given go template")
|
||||||
|
flags.BoolVarP(&opts.size, "size", "s", false, "Display total file sizes")
|
||||||
|
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
func runInspect(dockerCli *command.DockerCli, opts inspectOptions) error {
|
||||||
|
client := dockerCli.Client()
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
getRefFunc := func(ref string) (interface{}, []byte, error) {
|
||||||
|
return client.ContainerInspectWithRaw(ctx, ref, opts.size)
|
||||||
|
}
|
||||||
|
return inspect.Inspect(dockerCli.Out(), opts.refs, opts.format, getRefFunc)
|
||||||
|
}
|
|
@ -52,6 +52,13 @@ func NewPsCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newListCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
cmd := *NewPsCommand(dockerCli)
|
||||||
|
cmd.Aliases = []string{"ps", "list"}
|
||||||
|
cmd.Use = "ls [OPTIONS]"
|
||||||
|
return &cmd
|
||||||
|
}
|
||||||
|
|
||||||
type preProcessor struct {
|
type preProcessor struct {
|
||||||
types.Container
|
types.Container
|
||||||
opts *types.ContainerListOptions
|
opts *types.ContainerListOptions
|
|
@ -0,0 +1,37 @@
|
||||||
|
package image
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"github.com/docker/docker/cli"
|
||||||
|
"github.com/docker/docker/cli/command"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewImageCommand returns a cobra command for `image` subcommands
|
||||||
|
func NewImageCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "image",
|
||||||
|
Short: "Manage Docker images",
|
||||||
|
Args: cli.NoArgs,
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
fmt.Fprintf(dockerCli.Err(), "\n"+cmd.UsageString())
|
||||||
|
},
|
||||||
|
}
|
||||||
|
cmd.AddCommand(
|
||||||
|
NewBuildCommand(dockerCli),
|
||||||
|
NewHistoryCommand(dockerCli),
|
||||||
|
NewImportCommand(dockerCli),
|
||||||
|
NewLoadCommand(dockerCli),
|
||||||
|
NewPullCommand(dockerCli),
|
||||||
|
NewPushCommand(dockerCli),
|
||||||
|
NewSaveCommand(dockerCli),
|
||||||
|
NewSearchCommand(dockerCli),
|
||||||
|
NewTagCommand(dockerCli),
|
||||||
|
newListCommand(dockerCli),
|
||||||
|
newRemoveCommand(dockerCli),
|
||||||
|
newInspectCommand(dockerCli),
|
||||||
|
)
|
||||||
|
return cmd
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
package image
|
||||||
|
|
||||||
|
import (
|
||||||
|
"golang.org/x/net/context"
|
||||||
|
|
||||||
|
"github.com/docker/docker/cli"
|
||||||
|
"github.com/docker/docker/cli/command"
|
||||||
|
"github.com/docker/docker/cli/command/inspect"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
type inspectOptions struct {
|
||||||
|
format string
|
||||||
|
refs []string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newInspectCommand creates a new cobra.Command for `docker image inspect`
|
||||||
|
func newInspectCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
var opts inspectOptions
|
||||||
|
|
||||||
|
cmd := &cobra.Command{
|
||||||
|
Use: "inspect [OPTIONS] IMAGE [IMAGE...]",
|
||||||
|
Short: "Display detailed information on one or more images",
|
||||||
|
Args: cli.RequiresMinArgs(1),
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
opts.refs = args
|
||||||
|
return runInspect(dockerCli, opts)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
flags := cmd.Flags()
|
||||||
|
flags.StringVarP(&opts.format, "format", "f", "", "Format the output using the given go template")
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
func runInspect(dockerCli *command.DockerCli, opts inspectOptions) error {
|
||||||
|
client := dockerCli.Client()
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
getRefFunc := func(ref string) (interface{}, []byte, error) {
|
||||||
|
return client.ImageInspectWithRaw(ctx, ref)
|
||||||
|
}
|
||||||
|
return inspect.Inspect(dockerCli.Out(), opts.refs, opts.format, getRefFunc)
|
||||||
|
}
|
|
@ -50,6 +50,13 @@ func NewImagesCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newListCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
cmd := *NewImagesCommand(dockerCli)
|
||||||
|
cmd.Aliases = []string{"images", "list"}
|
||||||
|
cmd.Use = "ls [OPTIONS] [REPOSITORY[:TAG]]"
|
||||||
|
return &cmd
|
||||||
|
}
|
||||||
|
|
||||||
func runImages(dockerCli *command.DockerCli, opts imagesOptions) error {
|
func runImages(dockerCli *command.DockerCli, opts imagesOptions) error {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
|
@ -38,6 +38,13 @@ func NewRemoveCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newRemoveCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
cmd := *NewRemoveCommand(dockerCli)
|
||||||
|
cmd.Aliases = []string{"rmi", "remove"}
|
||||||
|
cmd.Use = "rm [OPTIONS] IMAGE [IMAGE...]"
|
||||||
|
return &cmd
|
||||||
|
}
|
||||||
|
|
||||||
func runRemove(dockerCli *command.DockerCli, opts removeOptions, images []string) error {
|
func runRemove(dockerCli *command.DockerCli, opts removeOptions, images []string) error {
|
||||||
client := dockerCli.Client()
|
client := dockerCli.Client()
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
|
@ -32,8 +32,8 @@ func NewStackCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
|
|
||||||
// NewTopLevelDeployCommand returns a command for `docker deploy`
|
// NewTopLevelDeployCommand returns a command for `docker deploy`
|
||||||
func NewTopLevelDeployCommand(dockerCli *command.DockerCli) *cobra.Command {
|
func NewTopLevelDeployCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
cmd := newDeployCommand(dockerCli)
|
cmd := *newDeployCommand(dockerCli)
|
||||||
// Remove the aliases at the top level
|
// Remove the aliases at the top level
|
||||||
cmd.Aliases = []string{}
|
cmd.Aliases = []string{}
|
||||||
return cmd
|
return &cmd
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue