code: func NewCommitCommand(dockerCli command.Cli) *cobra.Command {
  	var options commitOptions
  
  	cmd := &cobra.Command{
  		Use:   "commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]",
  		Short: "Create a new image from a container's changes",
  		Args:  cli.RequiresRangeArgs(1, 2),
  		RunE: func(cmd *cobra.Command, args []string) error {
  			options.container = args[0]
  			if len(args) > 1 {
  				options.reference = args[1]
  			}
  			return runCommit(dockerCli, &options)
  		},
  	}
  
  	flags := cmd.Flags()
  	flags.SetInterspersed(false)
  
  	flags.BoolVarP(&options.pause, "pause", "p", true, "Pause container during commit")
  	flags.StringVarP(&options.comment, "message", "m", "", "Commit message")
  	flags.StringVarP(&options.author, "author", "a", "", "Author (e.g., \"John Hannibal Smith <hannibal@a-team.com>\")")
  
  	options.changes = opts.NewListOpts(nil)
  	flags.VarP(&options.changes, "change", "c", "Apply Dockerfile instruction to the created image")
  
  	return cmd
  }
docs: // NewCommitCommand creates a new cobra.Command for `docker commit`