如何删除 Docker 容器

在测试和部署项目时,容器非常棒。 但是如果创建多个容器,容器会很快占用磁盘空间。

在这个 Docker 初学者教程中,我将向您展示如何删除 docker 容器。

在最简单的形式中,您可以使用 docker rm 命令

docker rm container_id_or_name

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

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

但是你不会总是用容器过简单的生活。 这就是为什么我要展示你可以删除的各种场景 码头工人 容器。

移除docker容器的实际例子

如您所料,要删除一个容器,您需要知道它的名称或 ID。 您可以使用 docker ps 命令检查系统上的所有 docker 容器(已停止和正在运行),如下所示:

[email protected]:~$ 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 容器在 Status 列中有“Up”。

现在您知道如何获取容器 ID 和名称,让我们看看如何删除它:

移除 docker 容器

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

docker rm container_id_or_name

您不会在输出中收到类似容器已删除的消息。 它只显示您提供的容器 ID 或名称。

[email protected]:~$ docker rm 12a18eaa291b
12a18eaa291b

删除正在运行的容器

如果容器正在运行并且您尝试将其删除,您将看到如下错误:

[email protected]:~$ 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 为您提供了 -f 选项来强制删除容器。 有了这个,你可以删除一个正在运行的容器:

docker rm -f container_id_or_name

不建议这样做,因为它会发送 kill 命令并且您的容器可能不会保存其状态。

移除多个 docker 容器

您可以在删除时指定多个 docker 容器:

docker rm container1 container2 container3

删除与特定 docker 映像关联的多个 docker 容器

在里面 example,假设您要删除与 docker image ubuntu 关联的所有容器。

我建议你先停止容器:

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

然后删除这些容器:

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

为了解释上面的命令, docker ps 命令输出使用与 ubuntu 映像关联的容器进行过滤,然后 -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

我希望你喜欢这个 Docker 教程。 请继续关注更多。