如何删除Docker容器
在测试和部署项目时,容器非常棒。
但如果我们创建多个容器,容器可以快速进食磁盘空间。
在这个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