同步操作将从 mirrors_back/docker-cli 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package containerimport ("context""fmt""strings""github.com/docker/cli/cli""github.com/docker/cli/cli/command""github.com/docker/cli/cli/command/completion""github.com/docker/docker/api/types/container""github.com/docker/docker/errdefs""github.com/pkg/errors""github.com/spf13/cobra")type rmOptions struct {rmVolumes boolrmLink boolforce boolcontainers []string}// NewRmCommand creates a new cobra.Command for `docker rm`func NewRmCommand(dockerCli command.Cli) *cobra.Command {var opts rmOptionscmd := &cobra.Command{Use: "rm [OPTIONS] CONTAINER [CONTAINER...]",Aliases: []string{"remove"},Short: "Remove one or more containers",Args: cli.RequiresMinArgs(1),RunE: func(cmd *cobra.Command, args []string) error {opts.containers = argsreturn runRm(cmd.Context(), dockerCli, &opts)},Annotations: map[string]string{"aliases": "docker container rm, docker container remove, docker rm",},ValidArgsFunction: completion.ContainerNames(dockerCli, true, func(ctr container.Summary) bool {return opts.force || ctr.State == "exited" || ctr.State == "created"}),}flags := cmd.Flags()flags.BoolVarP(&opts.rmVolumes, "volumes", "v", false, "Remove anonymous volumes associated with the container")flags.BoolVarP(&opts.rmLink, "link", "l", false, "Remove the specified link")flags.BoolVarP(&opts.force, "force", "f", false, "Force the removal of a running container (uses SIGKILL)")return cmd}func runRm(ctx context.Context, dockerCli command.Cli, opts *rmOptions) error {var errs []stringerrChan := parallelOperation(ctx, opts.containers, func(ctx context.Context, ctrID string) error {ctrID = strings.Trim(ctrID, "/")if ctrID == "" {return errors.New("Container name cannot be empty")}return dockerCli.Client().ContainerRemove(ctx, ctrID, container.RemoveOptions{RemoveVolumes: opts.rmVolumes,RemoveLinks: opts.rmLink,Force: opts.force,})})for _, name := range opts.containers {if err := <-errChan; err != nil {if opts.force && errdefs.IsNotFound(err) {fmt.Fprintln(dockerCli.Err(), err)continue}errs = append(errs, err.Error())continue}fmt.Fprintln(dockerCli.Out(), name)}if len(errs) > 0 {return errors.New(strings.Join(errs, "\n"))}return nil}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。