| 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 | |
| } |