SuperAPI AI 工具集

podman

设计与创作

查看项目

更新于 10-16 06:22

技能介绍

用途:Podman 是一个无守护进程(daemonless)的容器运行时,每次调用 podman 都是独立进程,默认不需要 /var/run/docker.sock 类套接字。支持无根(rootless)容器、Pod 管理、镜像构建、网络与卷,并可通过 Quadlet 与 systemd 集成。

安装:Fedora/RHEL 用 dnf install podman;Debian/Ubuntu 20.10+ 用 apt install podman。

主要能力与常用命令:运行容器 podman run -it --rm docker.io/library/alpine sh;后台运行 podman run -d --name myapp -p 8080:80 nginx;拉取 podman pull、列出 podman images、ps、ps -a;进入容器 podman exec -it myapp bash;日志 podman logs [-f] myapp;停止/删除 podman stop/rm/rm -f;构建 podman build -t myapp:latest . 或 -f Containerfile;打标签与推送 podman tag/push;创建与查看 Pod podman pod create/ps;网络与卷 podman network ls、volume ls;由 Kubernetes YAML 运行 podman play kube pod.yaml;检查 podman inspect、healthcheck run、info;清理 podman system prune -a;注册表标签自动更新 podman auto-update。

存储与配置位置:无根存储 ~/.local/share/containers/storage/,root 为 /var/lib/containers/storage/;配置 /etc/containers/ 与 ~/.config/containers/;注册表 /etc/containers/registries.conf;策略 /etc/containers/policy.json;Quadlet 单元无根 ~/.config/containers/systemd/,root 为 /etc/containers/systemd/。

健康检查:podman info 无错误并显示版本、存储与网络后端;podman run --rm docker.io/library/hello-world 拉取后以 0 退出;podman ps 无权限错误并显示当前用户容器列表。

适用场景:本地与服务器上的无根容器运行、Pod 编排、镜像构建与推送、以 Quadlet 声明式管理 systemd 容器服务。

限制与注意事项:无守护进程导致无跨会话可见性,不同用户(含 root)之间容器互不可见;无根网络较慢(slirp4netns 或 Podman 4.4+ 的 pasta),高吞吐服务可改 root 或 --network=host;SELinux 强制模式下绑定挂载需加 :z 或 :Z;无根需 /etc/subuid 与 /etc/subgid 条目;无根默认不能绑定低于 1024 端口,可用高位端口或调整 net.ipv4.ip_unprivileged_port_start;podman generate systemd 自 4.4 起被弃用,推荐 Quadlet;podman compose 为 4.7+ 内置,旧版本需 pip install podman-compose,且并非支持全部 Docker Compose v3 特性。常见故障排查包括权限、SELinux 标签、cgroup v2、注册表认证与 Pod 端口冲突等。