From 80b1285fec5409b1fe33f1f1202b041c408e7f3f Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 28 Jun 2022 10:52:25 +0200 Subject: [PATCH] cli: use custom annotation for aliases Cobra allows for aliases to be defined for a command, but only allows these to be defined at the same level (for example, `docker image ls` as alias for `docker image list`). Our CLI has some commands that are available both as a top-level shorthand as well as `docker ` subcommands. For example, `docker ps` is a shorthand for `docker container ps` / `docker container ls`. This patch introduces a custom "aliases" annotation that can be used to print all available aliases for a command. While this requires these aliases to be defined manually, in practice the list of aliases rarely changes, so maintenance should be minimal. As a convention, we could consider the first command in this list to be the canonical command, so that we can use this information to add redirects in our documentation in future. Before this patch: docker images --help Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images Options: -a, --all Show all images (default hides intermediate images) ... With this patch: docker images --help Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images Aliases: docker image ls, docker image list, docker images Options: -a, --all Show all images (default hides intermediate images) ... Signed-off-by: Sebastiaan van Stijn --- cli/cobra.go | 10 +++++++++- cli/cobra_test.go | 9 +++++++++ cli/command/container/attach.go | 3 +++ cli/command/container/commit.go | 3 +++ cli/command/container/cp.go | 3 +++ cli/command/container/create.go | 3 +++ cli/command/container/diff.go | 3 +++ cli/command/container/exec.go | 1 + cli/command/container/export.go | 3 +++ cli/command/container/kill.go | 3 +++ cli/command/container/list.go | 1 + cli/command/container/logs.go | 3 +++ cli/command/container/pause.go | 3 +++ cli/command/container/port.go | 3 +++ cli/command/container/rename.go | 3 +++ cli/command/container/restart.go | 3 +++ cli/command/container/rm.go | 3 +++ cli/command/container/run.go | 1 + cli/command/container/start.go | 3 +++ cli/command/container/stats.go | 3 +++ cli/command/container/stop.go | 3 +++ cli/command/container/top.go | 3 +++ cli/command/container/unpause.go | 3 +++ cli/command/container/update.go | 3 +++ cli/command/container/wait.go | 3 +++ cli/command/image/build.go | 1 + cli/command/image/history.go | 3 +++ cli/command/image/import.go | 3 +++ cli/command/image/list.go | 1 + cli/command/image/load.go | 3 +++ cli/command/image/pull.go | 1 + cli/command/image/push.go | 1 + cli/command/image/remove.go | 3 +++ cli/command/image/save.go | 3 +++ cli/command/image/tag.go | 3 +++ cli/command/system/events.go | 3 +++ cli/command/system/info.go | 1 + docs/reference/commandline/attach.md | 3 +++ docs/reference/commandline/build.md | 3 +++ docs/reference/commandline/commit.md | 3 +++ docs/reference/commandline/cp.md | 3 +++ docs/reference/commandline/create.md | 3 +++ docs/reference/commandline/diff.md | 3 +++ docs/reference/commandline/events.md | 3 +++ docs/reference/commandline/exec.md | 3 +++ docs/reference/commandline/export.md | 3 +++ docs/reference/commandline/history.md | 3 +++ docs/reference/commandline/images.md | 3 +++ docs/reference/commandline/import.md | 3 +++ docs/reference/commandline/info.md | 3 +++ docs/reference/commandline/kill.md | 3 +++ docs/reference/commandline/load.md | 3 +++ docs/reference/commandline/logs.md | 3 +++ docs/reference/commandline/pause.md | 3 +++ docs/reference/commandline/port.md | 3 +++ docs/reference/commandline/ps.md | 3 +++ docs/reference/commandline/pull.md | 3 +++ docs/reference/commandline/push.md | 3 +++ docs/reference/commandline/rename.md | 3 +++ docs/reference/commandline/restart.md | 3 +++ docs/reference/commandline/rm.md | 3 +++ docs/reference/commandline/rmi.md | 3 +++ docs/reference/commandline/run.md | 3 +++ docs/reference/commandline/save.md | 3 +++ docs/reference/commandline/start.md | 3 +++ docs/reference/commandline/stats.md | 3 +++ docs/reference/commandline/stop.md | 3 +++ docs/reference/commandline/tag.md | 3 +++ docs/reference/commandline/top.md | 3 +++ docs/reference/commandline/unpause.md | 3 +++ docs/reference/commandline/update.md | 3 +++ docs/reference/commandline/wait.md | 3 +++ 72 files changed, 212 insertions(+), 1 deletion(-) diff --git a/cli/cobra.go b/cli/cobra.go index ae425adddd..4b632c0ad3 100644 --- a/cli/cobra.go +++ b/cli/cobra.go @@ -31,6 +31,7 @@ func setupCommonRootCommand(rootCmd *cobra.Command) (*cliflags.ClientOptions, *p opts.Common.InstallFlags(flags) cobra.AddTemplateFunc("add", func(a, b int) int { return a + b }) + cobra.AddTemplateFunc("hasAliases", hasAliases) cobra.AddTemplateFunc("hasSubCommands", hasSubCommands) cobra.AddTemplateFunc("hasTopCommands", hasTopCommands) cobra.AddTemplateFunc("hasManagementSubCommands", hasManagementSubCommands) @@ -239,6 +240,10 @@ func isPlugin(cmd *cobra.Command) bool { return cmd.Annotations[pluginmanager.CommandAnnotationPlugin] == "true" } +func hasAliases(cmd *cobra.Command) bool { + return len(cmd.Aliases) > 0 || cmd.Annotations["aliases"] != "" +} + func hasSubCommands(cmd *cobra.Command) bool { return len(operationSubCommands(cmd)) > 0 } @@ -263,6 +268,9 @@ func hasTopCommands(cmd *cobra.Command) bool { // formatted as the full command as they're called (contrary to the default // Aliases function, which only returns the subcommand). func commandAliases(cmd *cobra.Command) string { + if cmd.Annotations["aliases"] != "" { + return cmd.Annotations["aliases"] + } var parentPath string if cmd.HasParent() { parentPath = cmd.Parent().CommandPath() + " " @@ -411,7 +419,7 @@ EXPERIMENTAL: https://docs.docker.com/go/experimental/ {{- end}} -{{- if gt .Aliases 0}} +{{- if hasAliases . }} Aliases: {{ commandAliases . }} diff --git a/cli/cobra_test.go b/cli/cobra_test.go index 3349d18603..4e0ea8e3e4 100644 --- a/cli/cobra_test.go +++ b/cli/cobra_test.go @@ -81,9 +81,18 @@ func TestInvalidPlugin(t *testing.T) { func TestCommandAliases(t *testing.T) { root := &cobra.Command{Use: "root"} sub := &cobra.Command{Use: "subcommand", Aliases: []string{"alias1", "alias2"}} + sub2 := &cobra.Command{Use: "subcommand2", Annotations: map[string]string{"aliases": "root foo, root bar"}} root.AddCommand(sub) + root.AddCommand(sub2) + assert.Equal(t, hasAliases(sub), true) assert.Equal(t, commandAliases(sub), "root subcommand, root alias1, root alias2") + assert.Equal(t, hasAliases(sub2), true) + assert.Equal(t, commandAliases(sub2), "root foo, root bar") + + sub.Annotations = map[string]string{"aliases": "custom alias, custom alias 2"} + assert.Equal(t, hasAliases(sub), true) + assert.Equal(t, commandAliases(sub), "custom alias, custom alias 2") } func TestDecoratedName(t *testing.T) { diff --git a/cli/command/container/attach.go b/cli/command/container/attach.go index 8934aff0f7..bd17696b80 100644 --- a/cli/command/container/attach.go +++ b/cli/command/container/attach.go @@ -55,6 +55,9 @@ func NewAttachCommand(dockerCli command.Cli) *cobra.Command { opts.container = args[0] return runAttach(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container attach, docker attach", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false, func(container types.Container) bool { return container.State != "paused" }), diff --git a/cli/command/container/commit.go b/cli/command/container/commit.go index bf177b2468..70ec4d2d9b 100644 --- a/cli/command/container/commit.go +++ b/cli/command/container/commit.go @@ -37,6 +37,9 @@ func NewCommitCommand(dockerCli command.Cli) *cobra.Command { } return runCommit(dockerCli, &options) }, + Annotations: map[string]string{ + "aliases": "docker container commit, docker commit", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } diff --git a/cli/command/container/cp.go b/cli/command/container/cp.go index 01940d5616..82e46e198c 100644 --- a/cli/command/container/cp.go +++ b/cli/command/container/cp.go @@ -101,6 +101,9 @@ func NewCopyCommand(dockerCli command.Cli) *cobra.Command { } return runCopy(dockerCli, opts) }, + Annotations: map[string]string{ + "aliases": "docker container cp, docker cp", + }, } flags := cmd.Flags() diff --git a/cli/command/container/create.go b/cli/command/container/create.go index c3b870b2a2..1bd12ef37b 100644 --- a/cli/command/container/create.go +++ b/cli/command/container/create.go @@ -57,6 +57,9 @@ func NewCreateCommand(dockerCli command.Cli) *cobra.Command { } return runCreate(dockerCli, cmd.Flags(), &options, copts) }, + Annotations: map[string]string{ + "aliases": "docker container create, docker create", + }, ValidArgsFunction: completion.ImageNames(dockerCli), } diff --git a/cli/command/container/diff.go b/cli/command/container/diff.go index ee57a82033..c0951b28f5 100644 --- a/cli/command/container/diff.go +++ b/cli/command/container/diff.go @@ -27,6 +27,9 @@ func NewDiffCommand(dockerCli command.Cli) *cobra.Command { opts.container = args[0] return runDiff(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container diff, docker diff", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } } diff --git a/cli/command/container/exec.go b/cli/command/container/exec.go index 4bf8459e99..521f294ed7 100644 --- a/cli/command/container/exec.go +++ b/cli/command/container/exec.go @@ -59,6 +59,7 @@ func NewExecCommand(dockerCli command.Cli) *cobra.Command { }), Annotations: map[string]string{ "category-top": "2", + "aliases": "docker container exec, docker exec", }, } diff --git a/cli/command/container/export.go b/cli/command/container/export.go index 6ad2e2634c..1871686d93 100644 --- a/cli/command/container/export.go +++ b/cli/command/container/export.go @@ -28,6 +28,9 @@ func NewExportCommand(dockerCli command.Cli) *cobra.Command { opts.container = args[0] return runExport(dockerCli, opts) }, + Annotations: map[string]string{ + "aliases": "docker container export, docker export", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, true), } diff --git a/cli/command/container/kill.go b/cli/command/container/kill.go index 25c073447a..2483a22437 100644 --- a/cli/command/container/kill.go +++ b/cli/command/container/kill.go @@ -30,6 +30,9 @@ func NewKillCommand(dockerCli command.Cli) *cobra.Command { opts.containers = args return runKill(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container kill, docker kill", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } diff --git a/cli/command/container/list.go b/cli/command/container/list.go index 80ca727974..03a4c5cc77 100644 --- a/cli/command/container/list.go +++ b/cli/command/container/list.go @@ -40,6 +40,7 @@ func NewPsCommand(dockerCli command.Cli) *cobra.Command { }, Annotations: map[string]string{ "category-top": "3", + "aliases": "docker container ls, docker container list, docker container ps, docker ps", }, ValidArgsFunction: completion.NoComplete, } diff --git a/cli/command/container/logs.go b/cli/command/container/logs.go index d1263b5d3e..c58023f590 100644 --- a/cli/command/container/logs.go +++ b/cli/command/container/logs.go @@ -35,6 +35,9 @@ func NewLogsCommand(dockerCli command.Cli) *cobra.Command { opts.container = args[0] return runLogs(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container logs, docker logs", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, true), } diff --git a/cli/command/container/pause.go b/cli/command/container/pause.go index c048bafb0b..aec3c4cb17 100644 --- a/cli/command/container/pause.go +++ b/cli/command/container/pause.go @@ -29,6 +29,9 @@ func NewPauseCommand(dockerCli command.Cli) *cobra.Command { opts.containers = args return runPause(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container pause, docker pause", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false, func(container types.Container) bool { return container.State != "paused" }), diff --git a/cli/command/container/port.go b/cli/command/container/port.go index 71d527e8fb..cee721390e 100644 --- a/cli/command/container/port.go +++ b/cli/command/container/port.go @@ -35,6 +35,9 @@ func NewPortCommand(dockerCli command.Cli) *cobra.Command { } return runPort(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container port, docker port", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } return cmd diff --git a/cli/command/container/rename.go b/cli/command/container/rename.go index c5a74fc8e7..faed72b51a 100644 --- a/cli/command/container/rename.go +++ b/cli/command/container/rename.go @@ -30,6 +30,9 @@ func NewRenameCommand(dockerCli command.Cli) *cobra.Command { opts.newName = args[1] return runRename(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container rename, docker rename", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, true), } return cmd diff --git a/cli/command/container/restart.go b/cli/command/container/restart.go index b86b822e1c..ce22b2c270 100644 --- a/cli/command/container/restart.go +++ b/cli/command/container/restart.go @@ -34,6 +34,9 @@ func NewRestartCommand(dockerCli command.Cli) *cobra.Command { opts.timeoutChanged = cmd.Flags().Changed("time") return runRestart(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container restart, docker restart", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, true), } diff --git a/cli/command/container/rm.go b/cli/command/container/rm.go index 3b0c595f9c..b98b3e76fe 100644 --- a/cli/command/container/rm.go +++ b/cli/command/container/rm.go @@ -34,6 +34,9 @@ func NewRmCommand(dockerCli command.Cli) *cobra.Command { opts.containers = args return runRm(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container rm, docker rm", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, true), } diff --git a/cli/command/container/run.go b/cli/command/container/run.go index 89ec06cd36..eaae1ecb6d 100644 --- a/cli/command/container/run.go +++ b/cli/command/container/run.go @@ -48,6 +48,7 @@ func NewRunCommand(dockerCli command.Cli) *cobra.Command { ValidArgsFunction: completion.ImageNames(dockerCli), Annotations: map[string]string{ "category-top": "1", + "aliases": "docker container run, docker run", }, } diff --git a/cli/command/container/start.go b/cli/command/container/start.go index b85d6e458d..2ecc0f97ef 100644 --- a/cli/command/container/start.go +++ b/cli/command/container/start.go @@ -44,6 +44,9 @@ func NewStartCommand(dockerCli command.Cli) *cobra.Command { opts.Containers = args return RunStart(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container start, docker start", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, true, func(container types.Container) bool { return container.State == "exited" || container.State == "created" }), diff --git a/cli/command/container/stats.go b/cli/command/container/stats.go index 0e938f3fad..70d6e1640a 100644 --- a/cli/command/container/stats.go +++ b/cli/command/container/stats.go @@ -40,6 +40,9 @@ func NewStatsCommand(dockerCli command.Cli) *cobra.Command { opts.containers = args return runStats(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container stats, docker stats", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } diff --git a/cli/command/container/stop.go b/cli/command/container/stop.go index e5664617b1..1cff0741b8 100644 --- a/cli/command/container/stop.go +++ b/cli/command/container/stop.go @@ -34,6 +34,9 @@ func NewStopCommand(dockerCli command.Cli) *cobra.Command { opts.timeoutChanged = cmd.Flags().Changed("time") return runStop(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container stop, docker stop", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } diff --git a/cli/command/container/top.go b/cli/command/container/top.go index 98300e530a..0ba6557cd7 100644 --- a/cli/command/container/top.go +++ b/cli/command/container/top.go @@ -31,6 +31,9 @@ func NewTopCommand(dockerCli command.Cli) *cobra.Command { opts.args = args[1:] return runTop(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container top, docker top", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } diff --git a/cli/command/container/unpause.go b/cli/command/container/unpause.go index d03cda1c13..1e155c7c8a 100644 --- a/cli/command/container/unpause.go +++ b/cli/command/container/unpause.go @@ -29,6 +29,9 @@ func NewUnpauseCommand(dockerCli command.Cli) *cobra.Command { opts.containers = args return runUnpause(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container unpause, docker unpause", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false, func(container types.Container) bool { return container.State == "paused" }), diff --git a/cli/command/container/update.go b/cli/command/container/update.go index caa07b62d5..fbef531bcf 100644 --- a/cli/command/container/update.go +++ b/cli/command/container/update.go @@ -49,6 +49,9 @@ func NewUpdateCommand(dockerCli command.Cli) *cobra.Command { options.nFlag = cmd.Flags().NFlag() return runUpdate(dockerCli, &options) }, + Annotations: map[string]string{ + "aliases": "docker container update, docker update", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, true), } diff --git a/cli/command/container/wait.go b/cli/command/container/wait.go index ad54f22922..df782e3a75 100644 --- a/cli/command/container/wait.go +++ b/cli/command/container/wait.go @@ -28,6 +28,9 @@ func NewWaitCommand(dockerCli command.Cli) *cobra.Command { opts.containers = args return runWait(dockerCli, &opts) }, + Annotations: map[string]string{ + "aliases": "docker container wait, docker wait", + }, ValidArgsFunction: completion.ContainerNames(dockerCli, false), } diff --git a/cli/command/image/build.go b/cli/command/image/build.go index 0c40b23b11..f7c7e062d1 100644 --- a/cli/command/image/build.go +++ b/cli/command/image/build.go @@ -107,6 +107,7 @@ func NewBuildCommand(dockerCli command.Cli) *cobra.Command { }, Annotations: map[string]string{ "category-top": "4", + "aliases": "docker image build, docker build, docker buildx build, docker builder build", }, ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { return nil, cobra.ShellCompDirectiveFilterDirs diff --git a/cli/command/image/history.go b/cli/command/image/history.go index fd98ee1399..c302e1bd45 100644 --- a/cli/command/image/history.go +++ b/cli/command/image/history.go @@ -31,6 +31,9 @@ func NewHistoryCommand(dockerCli command.Cli) *cobra.Command { opts.image = args[0] return runHistory(dockerCli, opts) }, + Annotations: map[string]string{ + "aliases": "docker image history, docker history", + }, } flags := cmd.Flags() diff --git a/cli/command/image/import.go b/cli/command/image/import.go index b966a4b497..1923eded7a 100644 --- a/cli/command/image/import.go +++ b/cli/command/image/import.go @@ -36,6 +36,9 @@ func NewImportCommand(dockerCli command.Cli) *cobra.Command { } return runImport(dockerCli, options) }, + Annotations: map[string]string{ + "aliases": "docker image import, docker import", + }, } flags := cmd.Flags() diff --git a/cli/command/image/list.go b/cli/command/image/list.go index 4771032cb0..2dd062da23 100644 --- a/cli/command/image/list.go +++ b/cli/command/image/list.go @@ -39,6 +39,7 @@ func NewImagesCommand(dockerCli command.Cli) *cobra.Command { }, Annotations: map[string]string{ "category-top": "7", + "aliases": "docker image ls, docker image list, docker images", }, } diff --git a/cli/command/image/load.go b/cli/command/image/load.go index 6c48f1743a..4f0794c043 100644 --- a/cli/command/image/load.go +++ b/cli/command/image/load.go @@ -29,6 +29,9 @@ func NewLoadCommand(dockerCli command.Cli) *cobra.Command { RunE: func(cmd *cobra.Command, args []string) error { return runLoad(dockerCli, opts) }, + Annotations: map[string]string{ + "aliases": "docker image load, docker load", + }, ValidArgsFunction: completion.NoComplete, } diff --git a/cli/command/image/pull.go b/cli/command/image/pull.go index a230f4e95e..1494c1d64c 100644 --- a/cli/command/image/pull.go +++ b/cli/command/image/pull.go @@ -37,6 +37,7 @@ func NewPullCommand(dockerCli command.Cli) *cobra.Command { }, Annotations: map[string]string{ "category-top": "5", + "aliases": "docker image pull, docker pull", }, ValidArgsFunction: completion.NoComplete, } diff --git a/cli/command/image/push.go b/cli/command/image/push.go index 47bcbd002e..e870432f08 100644 --- a/cli/command/image/push.go +++ b/cli/command/image/push.go @@ -38,6 +38,7 @@ func NewPushCommand(dockerCli command.Cli) *cobra.Command { }, Annotations: map[string]string{ "category-top": "6", + "aliases": "docker image push, docker push", }, ValidArgsFunction: completion.ImageNames(dockerCli), } diff --git a/cli/command/image/remove.go b/cli/command/image/remove.go index a4c72e444f..ab0882c640 100644 --- a/cli/command/image/remove.go +++ b/cli/command/image/remove.go @@ -29,6 +29,9 @@ func NewRemoveCommand(dockerCli command.Cli) *cobra.Command { RunE: func(cmd *cobra.Command, args []string) error { return runRemove(dockerCli, opts, args) }, + Annotations: map[string]string{ + "aliases": "docker image rm, docker image remove, docker rmi", + }, } flags := cmd.Flags() diff --git a/cli/command/image/save.go b/cli/command/image/save.go index 466c48c844..8063c0e785 100644 --- a/cli/command/image/save.go +++ b/cli/command/image/save.go @@ -28,6 +28,9 @@ func NewSaveCommand(dockerCli command.Cli) *cobra.Command { opts.images = args return RunSave(dockerCli, opts) }, + Annotations: map[string]string{ + "aliases": "docker image save, docker save", + }, ValidArgsFunction: completion.ImageNames(dockerCli), } diff --git a/cli/command/image/tag.go b/cli/command/image/tag.go index 17cae90cbd..f63b328b5b 100644 --- a/cli/command/image/tag.go +++ b/cli/command/image/tag.go @@ -27,6 +27,9 @@ func NewTagCommand(dockerCli command.Cli) *cobra.Command { opts.name = args[1] return runTag(dockerCli, opts) }, + Annotations: map[string]string{ + "aliases": "docker image tag, docker tag", + }, ValidArgsFunction: completion.ImageNames(dockerCli), } diff --git a/cli/command/system/events.go b/cli/command/system/events.go index 7a632d8479..1a29ee9a84 100644 --- a/cli/command/system/events.go +++ b/cli/command/system/events.go @@ -37,6 +37,9 @@ func NewEventsCommand(dockerCli command.Cli) *cobra.Command { RunE: func(cmd *cobra.Command, args []string) error { return runEvents(dockerCli, &options) }, + Annotations: map[string]string{ + "aliases": "docker system events, docker events", + }, ValidArgsFunction: completion.NoComplete, } diff --git a/cli/command/system/info.go b/cli/command/system/info.go index cc28226da9..0e71b4bf77 100644 --- a/cli/command/system/info.go +++ b/cli/command/system/info.go @@ -57,6 +57,7 @@ func NewInfoCommand(dockerCli command.Cli) *cobra.Command { }, Annotations: map[string]string{ "category-top": "12", + "aliases": "docker system info, docker info", }, ValidArgsFunction: completion.NoComplete, } diff --git a/docs/reference/commandline/attach.md b/docs/reference/commandline/attach.md index 4418f7b054..497aef5b1e 100644 --- a/docs/reference/commandline/attach.md +++ b/docs/reference/commandline/attach.md @@ -11,6 +11,9 @@ Usage: docker attach [OPTIONS] CONTAINER Attach local standard input, output, and error streams to a running container +Aliases: + docker container attach, docker attach + Options: --detach-keys string Override the key sequence for detaching a container --help Print usage diff --git a/docs/reference/commandline/build.md b/docs/reference/commandline/build.md index a2a6e9d2df..7262412efd 100644 --- a/docs/reference/commandline/build.md +++ b/docs/reference/commandline/build.md @@ -11,6 +11,9 @@ Usage: docker build [OPTIONS] PATH | URL | - Build an image from a Dockerfile +Aliases: + docker image build, docker build, docker buildx build, docker builder build + Options: --add-host value Add a custom host-to-IP mapping (host:ip) (default []) --build-arg value Set build-time variables (default []) diff --git a/docs/reference/commandline/commit.md b/docs/reference/commandline/commit.md index 47ec9ea0b3..d8f812b6bb 100644 --- a/docs/reference/commandline/commit.md +++ b/docs/reference/commandline/commit.md @@ -11,6 +11,9 @@ Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a container's changes +Aliases: + docker container commit, docker commit + Options: -a, --author string Author (e.g., "John Hannibal Smith ") -c, --change value Apply Dockerfile instruction to the created image (default []) diff --git a/docs/reference/commandline/cp.md b/docs/reference/commandline/cp.md index 72ab244193..9dc5567815 100644 --- a/docs/reference/commandline/cp.md +++ b/docs/reference/commandline/cp.md @@ -17,6 +17,9 @@ and extract it to a directory destination in a container. Use '-' as the destination to stream a tar archive of a container source to stdout. +Aliases: + docker container cp, docker cp + Options: -L, --follow-link Always follow symbol link in SRC_PATH -a, --archive Archive mode (copy all uid/gid information) diff --git a/docs/reference/commandline/create.md b/docs/reference/commandline/create.md index 6b22845659..e96255d67c 100644 --- a/docs/reference/commandline/create.md +++ b/docs/reference/commandline/create.md @@ -13,6 +13,9 @@ Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...] Create a new container +Aliases: + docker container create, docker create + Options: --add-host value Add a custom host-to-IP mapping (host:ip) (default []) -a, --attach value Attach to STDIN, STDOUT or STDERR (default []) diff --git a/docs/reference/commandline/diff.md b/docs/reference/commandline/diff.md index cc9c1c4133..e2aea5059c 100644 --- a/docs/reference/commandline/diff.md +++ b/docs/reference/commandline/diff.md @@ -11,6 +11,9 @@ Usage: docker diff CONTAINER Inspect changes to files or directories on a container's filesystem +Aliases: + docker container diff, docker diff + Options: --help Print usage ``` diff --git a/docs/reference/commandline/events.md b/docs/reference/commandline/events.md index 9a6a9c9975..79c85874e4 100644 --- a/docs/reference/commandline/events.md +++ b/docs/reference/commandline/events.md @@ -11,6 +11,9 @@ Usage: docker events [OPTIONS] Get real time events from the server +Aliases: + docker system events, docker events + Options: -f, --filter value Filter output based on conditions provided (default []) --format string Format the output using the given Go template diff --git a/docs/reference/commandline/exec.md b/docs/reference/commandline/exec.md index d43b42ffef..fab91cbfc1 100644 --- a/docs/reference/commandline/exec.md +++ b/docs/reference/commandline/exec.md @@ -11,6 +11,9 @@ Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] Execute a command in a running container +Aliases: + docker container exec, docker exec + Options: -d, --detach Detached mode: run command in the background --detach-keys Override the key sequence for detaching a container diff --git a/docs/reference/commandline/export.md b/docs/reference/commandline/export.md index 1eac539161..1fee46810d 100644 --- a/docs/reference/commandline/export.md +++ b/docs/reference/commandline/export.md @@ -11,6 +11,9 @@ Usage: docker export [OPTIONS] CONTAINER Export a container's filesystem as a tar archive +Aliases: + docker container export, docker export + Options: --help Print usage -o, --output string Write to a file, instead of STDOUT diff --git a/docs/reference/commandline/history.md b/docs/reference/commandline/history.md index f098626692..e0c454ddc2 100644 --- a/docs/reference/commandline/history.md +++ b/docs/reference/commandline/history.md @@ -11,6 +11,9 @@ Usage: docker history [OPTIONS] IMAGE Show the history of an image +Aliases: + docker image history, docker history + Options: --format string Pretty-print images using a Go template --help Print usage diff --git a/docs/reference/commandline/images.md b/docs/reference/commandline/images.md index b49b87f63f..94343c7e2e 100644 --- a/docs/reference/commandline/images.md +++ b/docs/reference/commandline/images.md @@ -11,6 +11,9 @@ Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images +Aliases: + docker image ls, docker image list, docker images + Options: -a, --all Show all images (default hides intermediate images) --digests Show digests diff --git a/docs/reference/commandline/import.md b/docs/reference/commandline/import.md index f4021e9311..17ca9723ce 100644 --- a/docs/reference/commandline/import.md +++ b/docs/reference/commandline/import.md @@ -11,6 +11,9 @@ Usage: docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] Import the contents from a tarball to create a filesystem image +Aliases: + docker image import, docker import + Options: -c, --change value Apply Dockerfile instruction to the created image (default []) --help Print usage diff --git a/docs/reference/commandline/info.md b/docs/reference/commandline/info.md index 028a7728e8..dd07b8d9ee 100644 --- a/docs/reference/commandline/info.md +++ b/docs/reference/commandline/info.md @@ -11,6 +11,9 @@ Usage: docker info [OPTIONS] Display system-wide information +Aliases: + docker system info, docker info + Options: -f, --format string Format the output using the given Go template --help Print usage diff --git a/docs/reference/commandline/kill.md b/docs/reference/commandline/kill.md index e36b836b06..4691bab61f 100644 --- a/docs/reference/commandline/kill.md +++ b/docs/reference/commandline/kill.md @@ -11,6 +11,9 @@ Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...] Kill one or more running containers +Aliases: + docker container kill, docker kill + Options: --help Print usage -s, --signal string Signal to send to the container diff --git a/docs/reference/commandline/load.md b/docs/reference/commandline/load.md index 05a4a3f461..385506a7f3 100644 --- a/docs/reference/commandline/load.md +++ b/docs/reference/commandline/load.md @@ -12,6 +12,9 @@ Usage: docker load [OPTIONS] Load an image or repository from a tar archive (even if compressed with gzip, bzip2, or xz) from a file or STDIN. +Aliases: + docker image load, docker load + Options: --help Print usage -i, --input string Read from tar archive file, instead of STDIN. diff --git a/docs/reference/commandline/logs.md b/docs/reference/commandline/logs.md index 3e6f405b0f..bc5e4f7053 100644 --- a/docs/reference/commandline/logs.md +++ b/docs/reference/commandline/logs.md @@ -11,6 +11,9 @@ Usage: docker logs [OPTIONS] CONTAINER Fetch the logs of a container +Aliases: + docker container logs, docker logs + Options: --details Show extra details provided to logs -f, --follow Follow log output diff --git a/docs/reference/commandline/pause.md b/docs/reference/commandline/pause.md index abdc1ea63b..ebb22e80e7 100644 --- a/docs/reference/commandline/pause.md +++ b/docs/reference/commandline/pause.md @@ -11,6 +11,9 @@ Usage: docker pause CONTAINER [CONTAINER...] Pause all processes within one or more containers +Aliases: + docker container pause, docker pause + Options: --help Print usage ``` diff --git a/docs/reference/commandline/port.md b/docs/reference/commandline/port.md index a35ae175f6..95dde22661 100644 --- a/docs/reference/commandline/port.md +++ b/docs/reference/commandline/port.md @@ -11,6 +11,9 @@ Usage: docker port CONTAINER [PRIVATE_PORT[/PROTO]] List port mappings or a specific mapping for the container +Aliases: + docker container port, docker port + Options: --help Print usage ``` diff --git a/docs/reference/commandline/ps.md b/docs/reference/commandline/ps.md index 8cfba9ab7d..8a442f2cde 100644 --- a/docs/reference/commandline/ps.md +++ b/docs/reference/commandline/ps.md @@ -11,6 +11,9 @@ Usage: docker ps [OPTIONS] List containers +Aliases: + docker container ls, docker container list, docker container ps, docker ps + Options: -a, --all Show all containers (default shows just running) -f, --filter value Filter output based on conditions provided (default []) diff --git a/docs/reference/commandline/pull.md b/docs/reference/commandline/pull.md index cbab29725e..c0c2b35963 100644 --- a/docs/reference/commandline/pull.md +++ b/docs/reference/commandline/pull.md @@ -11,6 +11,9 @@ Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST] Download an image from a registry +Aliases: + docker image pull, docker pull + Options: -a, --all-tags Download all tagged images in the repository --disable-content-trust Skip image verification (default true) diff --git a/docs/reference/commandline/push.md b/docs/reference/commandline/push.md index 60e62b8ed2..1f0f4fd4be 100644 --- a/docs/reference/commandline/push.md +++ b/docs/reference/commandline/push.md @@ -11,6 +11,9 @@ Usage: docker push [OPTIONS] NAME[:TAG] Upload an image to a registry +Aliases: + docker image push, docker push + Options: -a, --all-tags Push all tags of an image to the repository --disable-content-trust Skip image signing (default true) diff --git a/docs/reference/commandline/rename.md b/docs/reference/commandline/rename.md index f95f9c3457..dc19c75c17 100644 --- a/docs/reference/commandline/rename.md +++ b/docs/reference/commandline/rename.md @@ -11,6 +11,9 @@ Usage: docker rename CONTAINER NEW_NAME Rename a container +Aliases: + docker container rename, docker rename + Options: --help Print usage ``` diff --git a/docs/reference/commandline/restart.md b/docs/reference/commandline/restart.md index 30cd15812b..0a154a693d 100644 --- a/docs/reference/commandline/restart.md +++ b/docs/reference/commandline/restart.md @@ -11,6 +11,9 @@ Usage: docker restart [OPTIONS] CONTAINER [CONTAINER...] Restart one or more containers +Aliases: + docker container restart, docker restart + Options: -s, --signal string Signal to send to the container -t, --time int Seconds to wait before killing the container diff --git a/docs/reference/commandline/rm.md b/docs/reference/commandline/rm.md index 32683c4192..241e4e9ba4 100644 --- a/docs/reference/commandline/rm.md +++ b/docs/reference/commandline/rm.md @@ -11,6 +11,9 @@ Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...] Remove one or more containers +Aliases: + docker container rm, docker rm + Options: -f, --force Force the removal of a running container (uses SIGKILL) --help Print usage diff --git a/docs/reference/commandline/rmi.md b/docs/reference/commandline/rmi.md index a63ffb7658..e7786c86e2 100644 --- a/docs/reference/commandline/rmi.md +++ b/docs/reference/commandline/rmi.md @@ -11,6 +11,9 @@ Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] Remove one or more images +Aliases: + docker image rm, docker rmi + Options: -f, --force Force removal of the image --help Print usage diff --git a/docs/reference/commandline/run.md b/docs/reference/commandline/run.md index 51dd03c87e..5ce144a2bf 100644 --- a/docs/reference/commandline/run.md +++ b/docs/reference/commandline/run.md @@ -11,6 +11,9 @@ Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Create and run a new container from an image +Aliases: + docker container run, docker run + Options: --add-host value Add a custom host-to-IP mapping (host:ip) (default []) -a, --attach value Attach to STDIN, STDOUT or STDERR (default []) diff --git a/docs/reference/commandline/save.md b/docs/reference/commandline/save.md index 562bf2d799..7b21b4e014 100644 --- a/docs/reference/commandline/save.md +++ b/docs/reference/commandline/save.md @@ -11,6 +11,9 @@ Usage: docker save [OPTIONS] IMAGE [IMAGE...] Save one or more images to a tar archive (streamed to STDOUT by default) +Aliases: + docker image save, docker save + Options: --help Print usage -o, --output string Write to a file, instead of STDOUT diff --git a/docs/reference/commandline/start.md b/docs/reference/commandline/start.md index 1a710048b9..1709212b28 100644 --- a/docs/reference/commandline/start.md +++ b/docs/reference/commandline/start.md @@ -11,6 +11,9 @@ Usage: docker start [OPTIONS] CONTAINER [CONTAINER...] Start one or more stopped containers +Aliases: + docker container start, docker start + Options: -a, --attach Attach STDOUT/STDERR and forward signals --detach-keys string Override the key sequence for detaching a container diff --git a/docs/reference/commandline/stats.md b/docs/reference/commandline/stats.md index b75dc42f19..dfcbaa08fa 100644 --- a/docs/reference/commandline/stats.md +++ b/docs/reference/commandline/stats.md @@ -11,6 +11,9 @@ Usage: docker stats [OPTIONS] [CONTAINER...] Display a live stream of container(s) resource usage statistics +Aliases: + docker container stats, docker stats + Options: -a, --all Show all containers (default shows just running) --format string Pretty-print images using a Go template diff --git a/docs/reference/commandline/stop.md b/docs/reference/commandline/stop.md index 04df574a03..dd508b4186 100644 --- a/docs/reference/commandline/stop.md +++ b/docs/reference/commandline/stop.md @@ -11,6 +11,9 @@ Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...] Stop one or more running containers +Aliases: + docker container stop, docker stop + Options: -s, --signal string Signal to send to the container -t, --time int Seconds to wait before killing the container diff --git a/docs/reference/commandline/tag.md b/docs/reference/commandline/tag.md index 8fb4c6e233..aac1a8d539 100644 --- a/docs/reference/commandline/tag.md +++ b/docs/reference/commandline/tag.md @@ -11,6 +11,9 @@ Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE +Aliases: + docker image tag, docker tag + Options: --help Print usage ``` diff --git a/docs/reference/commandline/top.md b/docs/reference/commandline/top.md index 415d0433f8..0764c7848f 100644 --- a/docs/reference/commandline/top.md +++ b/docs/reference/commandline/top.md @@ -11,6 +11,9 @@ Usage: docker top CONTAINER [ps OPTIONS] Display the running processes of a container +Aliases: + docker container top, docker top + Options: --help Print usage ``` diff --git a/docs/reference/commandline/unpause.md b/docs/reference/commandline/unpause.md index 9f47077093..2923d09ce7 100644 --- a/docs/reference/commandline/unpause.md +++ b/docs/reference/commandline/unpause.md @@ -11,6 +11,9 @@ Usage: docker unpause CONTAINER [CONTAINER...] Unpause all processes within one or more containers +Aliases: + docker container unpause, docker unpause + Options: --help Print usage ``` diff --git a/docs/reference/commandline/update.md b/docs/reference/commandline/update.md index f8a1d08ac0..3697e72448 100644 --- a/docs/reference/commandline/update.md +++ b/docs/reference/commandline/update.md @@ -11,6 +11,9 @@ Usage: docker update [OPTIONS] CONTAINER [CONTAINER...] Update configuration of one or more containers +Aliases: + docker container update, docker update + Options: --blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0) --cpu-period int Limit CPU CFS (Completely Fair Scheduler) period diff --git a/docs/reference/commandline/wait.md b/docs/reference/commandline/wait.md index 85e485452e..0b9f7377ca 100644 --- a/docs/reference/commandline/wait.md +++ b/docs/reference/commandline/wait.md @@ -11,6 +11,9 @@ Usage: docker wait CONTAINER [CONTAINER...] Block until one or more containers stop, then print their exit codes +Aliases: + docker container wait, docker wait + Options: --help Print usage ```