如何删除Docker容器

时间:2020-03-05 15:25:23  来源:igfitidea点击:

在测试和部署项目时,容器非常棒。
但如果我们创建多个容器,容器可以快速进食磁盘空间。

在这个Docker教程中,我会向我们展示如何删除Docker容器。

在最简单的表单中,我们可以使用Docker RM命令删除Docker容器:

docker rm container_id_or_name

如果要删除所有容器,请先停止运行的容器,然后删除它们:

docker ps -q | xargs docker stop
docker ps -q | xargs docker rm

但是你不会总是拥有一个简单的容器。
这就是为什么我将显示我们可以删除Docker容器的各种场景。

去除Docker容器的实际例子

我们可以猜到,为了删除容器,我们需要知道其名称或者ID。
我们可以使用这样的Docker PS命令查看系统上的所有Docker容器(均停止和运行):

Hyman@theitroad:~$docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
07e97581c5d8        debian              "bash"              9 minutes ago       Up 9 minutes                                    container2
6ef4545eef37        ubuntu              "bash"              11 minutes ago      Up 11 minutes                                   container1
707e40ce3c5a        ubuntu              "/bin/bash"         15 minutes ago      Exited (0) 15 minutes ago                       boring_payne
8047ab8e3673        ubuntu              "/bin/bash"         34 minutes ago      Exited (0) 15 minutes ago                       relaxed_wiles
ce84231ab213        debian              "bash"              42 minutes ago      Exited (0) 42 minutes ago                       bold_golick
12a18eaa291b        hello-world         "/hello"            2 days ago          Exited (0) 2 days ago                           brave_mendeleev

第一个列提供容器ID,最后一列提供容器名称。
我们还可以注意到正在运行的Docker容器在状态列中具有"向上"。

既然你知道如何获取容器ID和名称,让我们看看如何删除它:

删除Docker容器

这是最简单的。
我们以这种方式使用容器ID或者名称:

docker rm container_id_or_name

我们不会收到输出中删除的容器等消息。
它只需显示提供的容器ID或者名称。

Hyman@theitroad:~$docker rm 12a18eaa291b
12a18eaa291b

删除正在运行的容器

如果容器正在运行并且我们尝试删除它,我们将看到这样的错误:

Hyman@theitroad:~$docker rm container1
Error response from daemon: You cannot remove a running container 6ef4545eef378788e5e9d7ac1cf2e0a717480608adb432be99fd9b3d3a604c12. Stop the container before attempting removal or force remove

非常清楚,我们应该先停止Docker容器,然后删除它:

docker stop container_id_or_name
docker rm container_id_or_name

强制删除运行的Docker容器(不推荐)

Docker为我们提供-f选项来强制删除容器。
有了这个,我们可以删除运行容器:

docker rm -f container_id_or_name

不推荐这是因为它发送kill命令,并且容器可能无法保存其状态。

删除多个Docker容器

我们可以在删除时指定多个Docker容器:

docker rm container1 container2 container3

删除与特定Docker图像相关联的多个Docker容器

在该示例中,假设我们要删除与Docker Image Ubuntu关联的所有容器。

我建议你先停止容器:

docker ps -a -q --filter ancestor=ubuntu | xargs docker stop

然后删除这些容器:

docker ps -a -q --filter ancestor=ubuntu | xargs docker rm

要解释上面的命令,请使用与Ubuntu图像关联的容器进行过滤Docker PS命令输出,然后-q选项仅提供容器ID。
将其与Xargs命令合并为将容器ID(与Ubuntu相关联)送到Docker RM命令。

删除所有停止的容器

如果要删除所有停止的容器,则可以按其状态过滤它们,然后以此时尚停止它们:

docker ps -a -q -f status=exited | xargs docker rm

卸下所有Docker容器

如果要从系统中删除所有容器,则应确保首先停止所有容器,然后删除它们:

docker ps -q | xargs docker stop
docker ps -q | xargs docker rm