| # rm |
| |
| <!---MARKER_GEN_START--> |
| Remove one or more containers |
| |
| ### Aliases |
| |
| `docker container rm`, `docker container remove`, `docker rm` |
| |
| ### Options |
| |
| | Name | Type | Default | Description | |
| |:------------------------------------------|:-------|:--------|:--------------------------------------------------------| |
| | [`-f`](#force), [`--force`](#force) | `bool` | | Force the removal of a running container (uses SIGKILL) | |
| | [`-l`](#link), [`--link`](#link) | `bool` | | Remove the specified link | |
| | [`-v`](#volumes), [`--volumes`](#volumes) | `bool` | | Remove anonymous volumes associated with the container | |
| |
| |
| <!---MARKER_GEN_END--> |
| |
| ## Examples |
| |
| ### Remove a container |
| |
| This removes the container referenced under the link `/redis`. |
| |
| ```console |
| $ docker rm /redis |
| |
| /redis |
| ``` |
| |
| ### <a name="link"></a> Remove a link specified with `--link` on the default bridge network (--link) |
| |
| This removes the underlying link between `/webapp` and the `/redis` |
| containers on the default bridge network, removing all network communication |
| between the two containers. This does not apply when `--link` is used with |
| user-specified networks. |
| |
| ```console |
| $ docker rm --link /webapp/redis |
| |
| /webapp/redis |
| ``` |
| |
| ### <a name="force"></a> Force-remove a running container (--force) |
| |
| This command force-removes a running container. |
| |
| ```console |
| $ docker rm --force redis |
| |
| redis |
| ``` |
| |
| The main process inside the container referenced under the link `redis` will receive |
| `SIGKILL`, then the container will be removed. |
| |
| ### Remove all stopped containers |
| |
| Use the [`docker container prune`](container_prune.md) command to remove all |
| stopped containers, or refer to the [`docker system prune`](system_prune.md) |
| command to remove unused containers in addition to other Docker resources, such |
| as (unused) images and networks. |
| |
| Alternatively, you can use the `docker ps` with the `-q` / `--quiet` option to |
| generate a list of container IDs to remove, and use that list as argument for |
| the `docker rm` command. |
| |
| Combining commands can be more flexible, but is less portable as it depends |
| on features provided by the shell, and the exact syntax may differ depending on |
| what shell is used. To use this approach on Windows, consider using PowerShell |
| or Bash. |
| |
| The example below uses `docker ps -q` to print the IDs of all containers that |
| have exited (`--filter status=exited`), and removes those containers with |
| the `docker rm` command: |
| |
| ```console |
| $ docker rm $(docker ps --filter status=exited -q) |
| ``` |
| |
| Or, using the `xargs` Linux utility: |
| |
| ```console |
| $ docker ps --filter status=exited -q | xargs docker rm |
| ``` |
| |
| ### <a name="volumes"></a> Remove a container and its volumes (-v, --volumes) |
| |
| ```console |
| $ docker rm --volumes redis |
| redis |
| ``` |
| |
| This command removes the container and any volumes associated with it. |
| Note that if a volume was specified with a name, it will not be removed. |
| |
| ### Remove a container and selectively remove volumes |
| |
| ```console |
| $ docker create -v awesome:/foo -v /bar --name hello redis |
| hello |
| |
| $ docker rm -v hello |
| ``` |
| |
| In this example, the volume for `/foo` remains intact, but the volume for |
| `/bar` is removed. The same behavior holds for volumes inherited with |
| `--volumes-from`. |