# docker container rm

## 用法

```shellscript
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
```

### 别名

别名是较长命令的简短或易于记忆的替代形式。

* `docker container remove`
* `docker rm`

## 选项

<table><thead><tr><th width="150.61328125">选项</th><th>描述</th><th data-hidden>默认值</th></tr></thead><tbody><tr><td><code>-f, --force</code></td><td>强制删除正在运行的容器（发送 <code>SIGKILL</code>）</td><td></td></tr><tr><td><code>-l, --link</code></td><td>删除指定的链接</td><td></td></tr><tr><td><code>-v, --volumes</code></td><td>删除与容器关联的匿名卷</td><td></td></tr></tbody></table>

## 示例

### 删除一个容器

```bash
$ docker rm /redis
/redis
```

### 删除在默认 bridge 网络上通过 `--link` 创建的链接（`--link`）

该命令会删除 `/webapp` 和 `/redis` 容器之间的链接，从而移除两者在默认 bridge 网络上的网络通信能力。 注意：当 `--link` 与用户自定义网络一起使用时，此操作无效。

```bash
$ docker rm --link /webapp/redis
/webapp/redis
```

### 强制删除正在运行的容器（`--force`）

该命令会强制删除名为 `redis` 的运行中容器。 容器内的主进程将首先收到 `SIGKILL` 信号，然后容器会被移除。

```bash
$ docker rm --force redis
redis
```

你可以使用 `docker container prune` 命令删除所有已停止的容器， 或使用 `docker system prune` 命令同时清理未使用的容器、镜像、网络等 Docker 资源。

你也可以结合 `docker ps` 与 `-q`（或 `--quiet`）选项生成容器 ID 列表，并将其作为参数传递给 `docker rm` 命令。

> **注意**：组合命令的灵活性更高，但可移植性较差，因为其依赖于 shell 提供的功能，且具体语法可能因所用 shell 而异。在 Windows 上建议使用 PowerShell 或 Bash。

以下示例使用 `docker ps -q` 打印所有已退出容器（`--filter status=exited`）的 ID，并通过命令替换将其传递给 `docker rm`：

```bash
$ docker rm $(docker ps --filter status=exited -q)
```

或者，使用 Linux 的 `xargs` 工具：

```bash
$ docker ps --filter status=exited -q | xargs docker rm
```

### 删除容器及其关联的卷（`-v`, `--volumes`）

该命令会删除容器及与其关联的所有匿名卷。

```bash
$ docker rm --volumes redis
redis
```

注意：如果卷是通过名称显式指定的（命名卷），则不会被删除。

例如：

```bash
$ docker create -v awesome:/foo -v /bar --name hello redis
hello
$ docker rm -v hello
```

在此示例中：

* 挂载到 `/foo` 的命名卷 `awesome` **不会被删除**；
* 挂载到 `/bar` 的匿名卷 **会被删除**。

同样的行为也适用于通过 `--volumes-from` 继承的卷。
