名称

podman-rm - 移除一个或多个容器

简介

podman rm [选项] 容器

podman container rm [选项] 容器

描述

podman rm 从主机中移除一个或多个容器。可以使用容器名称或 ID。这不会移除镜像。如果没有 -f 选项,正在运行或不可用的容器将不会被移除。

选项

--all, -a

移除所有容器。也可以与 -f 一起使用。

--cidfile=文件

从指定的文件中读取容器 ID,并停止该容器。可以指定多次。

当文件缺失且用户指定 --ignore 时,命令不会失败。

--depend

移除选定的容器并递归移除所有依赖于它的容器。

--filter=过滤器

过滤要移除的容器。可以通过多次使用 --filter 标志来给出多个过滤器。具有相同键的过滤器以包含方式工作,唯一的例外是 label,它是排他的。具有不同键的过滤器始终以排他方式工作。

下面列出了有效的过滤器

过滤器

描述

id

[ID] 容器的 ID(默认情况下 CID 前缀匹配;接受正则表达式)

name

[名称] 容器的名称(接受正则表达式)

label

[键] 或 [键=值] 分配给容器的标签

exited

[整数] 容器的退出代码

status

[状态] 容器的状态:“created”、“initialized”、“exited”、“paused”、“running”、“unknown”

ancestor

[ImageName] 用于创建容器的镜像或其后代

before

[ID] 或 [名称] 在此容器之前创建的容器

since

[ID] 或 [名称] 在此容器之后创建的容器

volume

[卷名称] 或 [挂载点目标] 挂载在容器中的卷

health

[状态] healthy 或 unhealthy

pod

[Pod] pod 的名称或完整或部分 ID

network

[网络] 网络的名称或完整 ID

until

[DateTime] 在给定持续时间或时间之前创建的容器。

command

[命令] 容器正在执行的命令,只取 argv[0]

--force, -f

强制移除正在运行和已暂停的容器。强制移除容器还会从容器存储中移除容器,即使 Podman 不知道该容器。例如,由 Buildah 等不同容器引擎创建的容器。此外,强制移除可用于移除不可用的容器,例如,OCI 运行时已变得不可用的容器。

--ignore, -i

当指定项不在容器存储中时忽略错误。用户可能已决定手动删除一个容器,这导致引用该容器的 systemd 服务的 ExecStop 指令失败。

当指定的 --cidfile 不存在时,进一步忽略,因为它可能已与容器一起被移除。

--latest, -l

不提供名称或 ID,而是使用最新创建的容器。注意:最新创建的容器可能来自主机上 Podman 的其他用户。(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(WSL2 除外)机器)

--time, -t=秒数

强制停止前等待的秒数。使用 -1 表示无限等待。

必须指定 --force 选项才能使用 --time 选项。

--volumes, -v

移除与容器关联的匿名卷。这不包括使用 podman volume createpodman runpodman create--volume 选项创建的命名卷。

示例

移除给定名称的容器

$ podman rm mywebserver

移除给定名称的容器以及所有依赖于它的容器

$ podman rm --depend mywebserver

移除多个具有给定名称或 ID 的容器

$ podman rm mywebserver myflaskserver 860a4b23

从文件中读取 ID 以移除多个容器

$ podman rm --cidfile ./cidfile-1 --cidfile /home/user/cidfile-2

强制移除给定 ID 的容器

$ podman rm -f 860a4b23

移除所有容器,无论运行状态如何

$ podman rm -f -a

强制移除上次创建的容器。(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows (WSL2 除外) 机器)

$ podman rm -f --latest

按名称移除

$ podman rm --filter name=test-alpine
34f997d354017a0076402c3a79245a5b8bd11b597c84385bec25ae8941fd5238

按标签移除

$ podman rm --filter label=app=frontend
5a3694a13436168ea99490e74b489566c646d6a0db29868f57113298110d1b1c

按状态移除

$ podman rm --filter status=exited
4a3332649ed8bec1e0d82e113074b9a13d45582007aeac969c005992cc480a73
f8e85f84a749b205fb602895afa6ec8a866045ff27b82f843033712c8b93a2c9
7d17e850c9b172f11a3e20bab81da6fc694c35c2dc38d84083eb57869dcaca63
47972eb04aa7c77705b597a929957d1e8a392e00b44c0a2a7f88a01f9f860d11

按祖先移除

$ podman rm --filter ancestor=nginx
8a7668cdec27664559a7da55ed5cda101f904441f7245e248218580656b2bae3
0d297b336bf31d141c7720a791c45dafdb8b5033deaab12f29b88e5bff6b122d
134475ac5140687d1eefff19f937dc24755f6c18e37e11d61b1084b59f1bdbe2

按卷移除

$ podman rm --filter volume=web-vol
b3f4d4c6a67e2ef1e089efdc8ff3a47dba008eb0ff1e53ae60f59279cb43f9ba

按网络移除

$ podman rm --filter network=web-net
1c057cac90c0512df86197599eef5a9485afc900b1ade03c9739fa24c360bbda

移除容器,如果它们不存在则忽略错误

$ podman rm --ignore mycontainer1 mycontainer2 nonexistent-container
mycontainer1
mycontainer2

退出状态

0 所有指定的容器已移除

1 指定的容器之一不存在,没有其他失败

2 指定的容器之一已暂停或正在运行

125 命令因任何其他原因失败

另请参阅

podman(1)

历史

2017 年 8 月,最初由 Ryan Cole rycole@redhat.com 编译