package network import ( "golang.org/x/net/context" "github.com/docker/docker/cli" "github.com/docker/docker/cli/command" "github.com/spf13/cobra" ) type disconnectOptions struct { network string container string force bool } func newDisconnectCommand(dockerCli *command.DockerCli) *cobra.Command { opts := disconnectOptions{} cmd := &cobra.Command{ Use: "disconnect [OPTIONS] NETWORK CONTAINER", Short: "Disconnect a container from a network", Args: cli.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { opts.network = args[0] opts.container = args[1] return runDisconnect(dockerCli, opts) }, } flags := cmd.Flags() flags.BoolVarP(&opts.force, "force", "f", false, "Force the container to disconnect from a network") return cmd } func runDisconnect(dockerCli *command.DockerCli, opts disconnectOptions) error { client := dockerCli.Client() return client.NetworkDisconnect(context.Background(), opts.network, opts.container, opts.force) }