package client import ( "context" "net/url" ) // ContainerRemoveOptions holds parameters to remove containers. type ContainerRemoveOptions struct { RemoveVolumes bool RemoveLinks bool Force bool } // ContainerRemoveResult holds the result of [Client.ContainerRemove], type ContainerRemoveResult struct { // Add future fields here. } // ContainerRemove kills and removes a container from the docker host. func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options ContainerRemoveOptions) (ContainerRemoveResult, error) { containerID, err := trimID("container", containerID) if err != nil { return ContainerRemoveResult{}, err } query := url.Values{} if options.RemoveVolumes { query.Set("v", "1") } if options.RemoveLinks { query.Set("link", "1") } if options.Force { query.Set("force", "1") } resp, err := cli.delete(ctx, "/containers/"+containerID, query, nil) defer ensureReaderClosed(resp) if err != nil { return ContainerRemoveResult{}, err } return ContainerRemoveResult{}, nil }