Podman rm - 移除一个或多个容器
摘要
podman rm [选项] 容器
podman container rm [选项] 容器
描述
podman rm 命令用于从主机上移除一个或多个容器。可以使用容器的名称或ID进行指定。此命令并不会移除镜像。 正在运行或无法使用的容器在没有使用 -f 选项的情况下不会被移除。
选项
以下是有效的过滤器列表及其详细说明:
过滤器 | 描述 |
---|---|
id | [ID] 容器的ID(默认进行CID前缀匹配;接受正则表达式) |
name | [Name] 容器的名称(接受正则表达式) |
label | [Key] 或 [Key=Value] 分配给容器的标签 |
exited | [Int] 容器的退出代码 |
status | [Status] 容器的状态:'created'(已创建)、'exited'(已退出)、'paused'(已暂停)、'running'(运行中)、'unknown'(未知) |
ancestor | [ImageName] 用于创建容器的镜像或其子代 |
before | [ID] 或 [Name] 在此容器之前创建的容器 |
since | [ID] 或 [Name] 在此容器之后创建的容器 |
volume | [VolumeName] 或 [MountpointDestination] 在容器中挂载的卷 |
health | [Status] 健康或不健康 |
pod | [Pod] pod的名称或完整或部分ID |
network | [Network] 网络的名称或完整ID |
until | [DateTime] 在给定持续时间或时间之前创建的容器。 |
这些过滤器可以帮助用户更加精确地选择和管理容器。通过指定不同的过滤条件,用户能够定位并操作满足特定条件的容器集合,从而提高容器管理的效率和准确性。
--all, -a
移除所有容器。可以与 -f 选项结合使用。
--cidfile.read
当指定的文件不存在时,如果用户指定了 --ignore,则命令不会失败。
--depend
移除指定的容器,并递归地移除所有依赖于它的容器。
--filter=filter
对要移除的容器进行过滤。
可以多次使用 --filter 标志来指定多个过滤器。
具有相同键的过滤器以包含方式工作,唯一的例外是 label
,它以排除方式工作。具有不同键的过滤器始终以排除方式工作。
过滤器的键值
ancestor=(image-name[:tag]|image id|@image digest) 只移除那些由指定的镜像生成的容器。
before=(container[:container...]) 只移除那些在给定的容器之前创建的容器。
created=(timestamp) 只移除那些在给定的时间戳之后创建的容器。
exited=(int) 只移除那些退出码与指定值相匹配的容器。
health=(healthy|unhealthy|starting) 只移除那些健康状态与指定值相匹配的容器。
id=(container-id) 只移除具有指定ID的容器。
label=(key|key=value) 只移除具有指定标签的容器。
name=(name) 只移除具有指定名称的容器。
prune 删除所有未运行的容器。
status=(created|restarting|running|paused|exited|dead) 只移除具有指定状态的容器。
--force, -f
强制移除一个或多个正在运行或无法使用的容器。
--help
显示帮助信息。
--ignore
当遇到错误时,不停止处理,并继续移除其他容器。
--volume
在移除容器时,同时移除与该容器关联的匿名卷。
-q, --quiet
静默模式,只显示容器ID。
示例
移除指定容器
podman rm mycontainer
强制移除正在运行的容器
podman rm -f myrunningcontainer
移除所有容器
podman rm -a
使用过滤器移除容器
podman rm --filter exited=0
这条命令将移除所有退出码为0的容器。
移除容器及其关联的匿名卷
podman rm --volume mycontainer
静默模式移除容器
podman rm -q mycontainer
这条命令将只输出被移除容器的ID,而不会显示其他信息。
返回值
命令执行成功时返回0,否则返回非0值。
注意事项
- 在移除容器之前,请确保不再需要容器内的数据,因为一旦容器被移除,其内部的数据也将被删除。
- 如果容器正在运行,需要使用 -f 选项来强制移除。
- 使用 --volume 选项时,将同时删除与容器关联的匿名卷,但不会删除命名卷。
--force, -f
强制移除正在运行和暂停的容器。强制移除容器也会从容器存储中移除容器,即使该容器不为 Podman 所知。例如,由不同容器引擎(如 Buildah)创建的容器。此外,强制移除可以用于移除无法使用的容器,例如其 OCI 运行时不可用的容器。
--ignore
当指定的 --cidfile
不存在时忽略,因为容器可能已经被移除。
--latest
(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(不包括 WSL2)机器)
--time
要使用 --time
选项,必须指定 --force
选项。
--volumes, -v
移除与容器关联的匿名卷。这不包括使用 podman volume create 或 podman run 和 podman 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
退出状态
0 所有指定的容器已移除
1 其中一个指定的容器不存在,且没有其他失败
2 其中一个指定的容器处于暂停或运行状态
125 命令因其他原因失败
另请参阅
- podman(1): Podman 命令行工具的主文档。
- podman create(1): 创建新容器但不运行它。
- podman run(1): 创建并运行新容器。
- podman ps(1): 列出正在运行的容器。
- podman inspect(1): 显示一个或多个容器的详细信息。
- podman volume(1): 管理容器卷。
历史
2017 年 8 月,最初由Ryan Cole编译