Podman 教程

Podman Pod 删除

Podman Pod 的删除操作涉及移除 Pod 本身及其内部的所有容器。因此,进行删除操作时,需要特别谨慎,避免误删除 Pod,删除后 Pod 不能恢复。

基础语法

podman pod rm 语法格式如下:

podman pod rm [OPTIONS] POD [POD...]

其中:

  • [OPTIONS]:可选参数,用于控制删除行为(如强制删除、批量删除等)。

  • POD [POD...]:必填项,指定要删除的 Pod 名称或 ID,可同时指定多个 Pod。

常用选项:

  • -a, --all    删除所有已停止的 Pod(若结合 -f,则删除所有 Pod,包括运行中的),例如:podman pod rm -a

  • -f, --force    强制删除运行中的 Pod。Podman 会先停止 Pod 内所有容器,再删除 Pod 和容器。例如:podman pod rm -f my-pod

  • -t, --time=SECONDS    等待容器停止的超时时间(单位:秒),超时后强制终止容器(默认 10 秒),例如:podman pod rm -f -t 20 my-pod

  • --pod-id-file=FILE    从指定文件中读取 Pod ID 进行删除(适用于脚本批量操作),例如:podman pod rm --pod-id-file pod.id

点击查看 podman pod rm 命令手册

  

常用示例

下面列举了一些删除 Pod 的示例,仅供参考。

删除已停止的 Pod

如果 Pod 已经处于停止状态(Exited),可以直接使用 podman pod rm 命令删除,例如:

# 删除指定名称的 Pod
podman pod rm my-app-pod

# 删除指定 ID 的 Pod
podman pod rm a1b2c3d4

# 同时删除多个 Pod
podman pod rm pod-1 pod-2 pod-3

示例:

# 查看 pod 列表
C:\Users\Administrator> podman pod ls
POD ID        NAME                  STATUS      CREATED            INFRA ID      # OF CONTAINERS
f113d137aafa  charming_tesla        Created     58 minutes ago     0e1f7a750714  1
96cc0a7b8a27  blissful_lamarr       Created     58 minutes ago     3312add23f2b  1
f4f035f3eec2  my-pod                Exited      58 minutes ago     c6959186d247  3
2034e27356c2  custom-net-pod        Created     About an hour ago  53250a7299b0  1
800c46e0d4bb  resource-limited-pod  Created     About an hour ago  80169b948720  1
374e9c88dafe  my-app-pod            Created     About an hour ago  914eb0c35d15  1
0c9858859aa8  web-redis-pod         Exited      19 hours ago       a00c13fb2b32  3

# 删除名为 charming_tesla 的 Pod
C:\Users\Administrator> podman pod rm charming_tesla
f113d137aafa9981002c3de26df5c09cd601d215dbdba5c1d96436aa775e1b5e

# 删除不存在的Pod,抛出错误
C:\Users\Administrator> podman pod rm charming_tesla
Error: unable to find pod "charming_tesla": no such pod

# 同时删除两个 Pod
C:\Users\Administrator> podman pod rm blissful_lamarr custom-net-pod
96cc0a7b8a2764a94d1be75f01aa4fa32301b26c7cf28d0cec8ab83543c2cd9f
2034e27356c2edf961be67365c351be270877641adcfe8077c41f3935a335513

C:\Users\Administrator> podman pod ls
POD ID        NAME                  STATUS      CREATED            INFRA ID      # OF CONTAINERS
f4f035f3eec2  my-pod                Exited      About an hour ago  c6959186d247  3
800c46e0d4bb  resource-limited-pod  Created     About an hour ago  80169b948720  1
374e9c88dafe  my-app-pod            Created     About an hour ago  914eb0c35d15  1
0c9858859aa8  web-redis-pod         Exited      19 hours ago       a00c13fb2b32  3

删除运行中的 Pod

如果 Pod 仍在运行,直接使用 podman pod rm 会报错。需要添加 -f(--force)参数强制删除,例如:

# 强制删除运行中的 Pod(含所有容器)
podman pod rm -f my-app-pod

此时,Podman 会先向 Pod 内所有容器发送 SIGKILL 信号强制终止,再删除 Pod 和容器。注意:强制删除可能导致容器内数据未正常保存,仅在紧急情况下使用。

示例:

# 列出 Pod 列表
C:\Users\Administrator> podman pod ls
POD ID        NAME                  STATUS      CREATED            INFRA ID      # OF CONTAINERS
f4f035f3eec2  my-pod                Running     About an hour ago  c6959186d247  3
800c46e0d4bb  resource-limited-pod  Created     About an hour ago  80169b948720  1
374e9c88dafe  my-app-pod            Created     About an hour ago  914eb0c35d15  1
0c9858859aa8  web-redis-pod         Exited      19 hours ago       a00c13fb2b32  3

# 删除运行中的 Pod,删除失败
C:\Users\Administrator> podman pod rm my-pod
Error: not all containers could be removed from pod f4f035f3eec2a5acaaf7a672d56ddc689e89dc9634d405f065939564c8efe871: removing pod containers. 3 errors occurred:
        * cannot remove container 39d0244be2f9dfa9c895e08544929b925a713686bd42459ed643561d1232b2e2 as it is running - running or paused containers cannot be removed without force: container state improper
        * a container that depends on container c6959186d247f277af9ef44b16defa05ec325ce5036fd0a27819c6bafac16f88 could not be stopped: container state improper
        * cannot remove container d9b39ec0753a0e7c7a6d8a24bdd2e5e3c95d951ae21eca440b2494b575d43707 as it is running - running or paused containers cannot be removed without force: container state improper

# 使用 -f 选项强制删除
C:\Users\Administrator> podman pod rm -f my-pod
f4f035f3eec2a5acaaf7a672d56ddc689e89dc9634d405f065939564c8efe871

# 列出 Pod 列表
C:\Users\Administrator> podman pod ls
POD ID        NAME                  STATUS      CREATED            INFRA ID      # OF CONTAINERS
800c46e0d4bb  resource-limited-pod  Created     About an hour ago  80169b948720  1
374e9c88dafe  my-app-pod            Created     About an hour ago  914eb0c35d15  1
0c9858859aa8  web-redis-pod         Exited      19 hours ago       a00c13fb2b32  3

删除所有已停止的 Pod

当存在大量已停止的 Pod 需要清理时,可使用批量删除命令:

# 删除所有处于 Exited 状态的 Pod
podman pod prune

# 无需确认直接清理(非交互模式)
podman pod prune -f

安全提示:podman pod prune 只会删除已停止的 Pod,不会影响运行中的 Pod,是日常清理的推荐方式。执行前谨慎操作,避免将有用的、已停止的 Pod 删除。

示例:

# 列出 Pod 列表
C:\Users\Administrator> podman pod ls
POD ID        NAME           STATUS      CREATED             INFRA ID      # OF CONTAINERS
ea0c8580fc09  my-pod2        Exited      About a minute ago  5d623f877c21  2
47b9dbfb23df  my-pod1        Exited      About a minute ago  bad4fb00de53  2
0c9858859aa8  web-redis-pod  Running     19 hours ago        a00c13fb2b32  3

# 清理退出的 Pod
C:\Users\Administrator> podman pod prune
WARNING! This will remove all stopped/exited pods..
Are you sure you want to continue? [y/N] y
47b9dbfb23df450504de5cbbf133358f9c6bf808680ffe911e3153f4f5bc0a5f
ea0c8580fc09899ef68126e59bc989c758637c20fb0bec01def8ca46661ce225

# 列出 Pod 列表
C:\Users\Administrator> podman pod ls
POD ID        NAME           STATUS      CREATED       INFRA ID      # OF CONTAINERS
0c9858859aa8  web-redis-pod  Running     19 hours ago  a00c13fb2b32  3

注意事项

下面是删除 Pod 时的一些注意事项:

  • 级联删除:删除 Pod 时,其内部的所有容器会被一并删除(无论容器是否运行)。Pod 是容器的父级对象,不存在“删除 Pod 但保留容器”的情况。

  • 资源释放:删除 Pod 后,其占用的 IP 地址、端口映射、资源限制等配置会被彻底释放。

  • 命名卷保留:通过 --volume 挂载的命名卷或宿主机目录不会被删除,数据会持久保留。

  • 网络隔离:如果 Pod 属于自定义网络,删除 Pod 不会影响自定义网络本身,仅移除 Pod 在网络中的节点。

在删除 Pod 前,建议先查看 Pod 状态和内部容器,确认无误后再操作:

# 查看 Pod 的详细配置(确认挂载卷、网络等信息)
podman pod inspect my-app-pod

示例:

# 查看指定 Pod 的详细信息
C:\Users\Administrator> podman pod inspect web-redis-pod
[
     {
          "Id": "0c9858859aa8e97fefa2b4839cc1c0f4c589ed40aca1840cbfd66b8f49eae31e",
          "Name": "web-redis-pod",
          "Created": "2025-11-25T16:26:00.105431602+08:00",
          "CreateCommand": [
               "podman",
               "pod",
               "create",
               "--name",
               "web-redis-pod",
               "--publish",
               "8080:80",
               "--publish",
               "6379:6379"
          ],
          "ExitPolicy": "continue",
          "State": "Running",
          "Hostname": "",
          "CreateCgroup": true,
          "CgroupParent": "/libpod_parent",
          "CreateInfra": true,
          "InfraContainerID": "a00c13fb2b32bc1c07e7f3e277e09b6dcd8ba5a1dda62fc8f6a7e9a3c241cb37",
          "InfraConfig": {
               "PortBindings": {
                    "6379/tcp": [
                         {
                              "HostIp": "0.0.0.0",
                              "HostPort": "6379"
                         }
                    ],
                    "80/tcp": [
                         {
                              "HostIp": "0.0.0.0",
                              "HostPort": "8080"
                         }
                    ]
               },
               "HostNetwork": false,
               "StaticIP": "",
               "StaticMAC": "",
               "NoManageResolvConf": false,
               "DNSServer": null,
               "DNSSearch": null,
               "DNSOption": null,
               "NoManageHostname": false,
               "NoManageHosts": false,
               "HostAdd": null,
               "HostsFile": "",
               "Networks": null,
               "NetworkOptions": null,
               "pid_ns": "private",
               "userns": "host",
               "uts_ns": "private"
          },
          "SharedNamespaces": [
               "ipc",
               "net",
               "uts"
          ],
          "NumContainers": 3,
          "Containers": [
               {
                    "Id": "a00c13fb2b32bc1c07e7f3e277e09b6dcd8ba5a1dda62fc8f6a7e9a3c241cb37",
                    "Name": "0c9858859aa8-infra",
                    "State": "running"
               },
               {
                    "Id": "059b42d1d4c26c71753cc396a828a55c4c7e3820ec8971d0dbc97ea2d67dacc4",
                    "Name": "redis",
                    "State": "running"
               },
               {
                    "Id": "0f9dce4e088a7060b3afcda1893ada8d894e987535126ad3937b5438c3c04535",
                    "Name": "nginx",
                    "State": "running"
               }
          ],
          "LockNumber": 0
     }
]

注意:删除 Pod 会级联删除其内部所有容器,但命名卷和宿主机挂载目录的数据会保留,需注意数据备份与清理策略。操作前,一定要看看 Pod 的状态和详细信息,避免误删除,谨慎谨慎!

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号