Linux Podman入门全指南:安装、配置与运行容器
一、什么是Podman
Podman(Pod Manager)是一款由 Red Hat 主导的开源容器管理工具,旨在提供比 Docker 更安全、轻量的现代化替代方案。
它的核心优势主要体现在以下三点:
- 无守护进程:摒弃了传统的后台守护进程,直接通过命令行启动容器,不仅资源占用更低,还彻底避免了单点故障风险。
- 原生 Rootless:普通用户无需 root 权限即可安全运行容器,极大提升了系统的安全性。
- 无缝兼容 Docker:命令与 Docker 高度一致,开发者几乎可以零成本平滑迁移,且原生支持 Kubernetes 的 Pod 概念。
二、安装Podman
参考官方安装说明:Podman 安装 | Podman 容器工具
1.更新软件包
sudo apt-get update
2.安装软件包
sudo apt-get -y install podman
3.查看安装版本
podman –version
#返回版本号
podman version 4.3.1
三、配置Podman
1.配置镜像加速
编辑 /etc/containers/registries.conf
cat > /etc/containers/registries.conf <<EOF
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "docker.io"
[[registry.mirror]]
location = "docker.1ms.run"
EOF
2.配置 Podman 与 Docker 兼容(可选)
cat > /etc/containers/containers.conf <<EOF
[network]
default_rootless_network_cmd = "iptables" #网络方式和docker一致
[containers]
default_capabilities = [ #权限和docker一致
"CHOWN",
"DAC_OVERRIDE",
"FSETID",
"FOWNER",
"SETGID",
"SETUID",
"SETPCAP",
"NET_BIND_SERVICE",
"KILL"
]
EOF
等于:把 Podman 变成一个 “无守护进程、更安全的 Docker”
3.设置防火墙FORWARD 默认允许
外部访问容器流量放行,不会被拦截
iptables -P FORWARD ACCEPT
4.配置普通用户 Rootless 运行(安全,推荐)
①创建一个普通用户(比如叫podman)
useradd -m -s /bin/bash podman
②设置密码
passwd podman
③开启linger(让普通用户后台能跑容器)
loginctl enable-linger podman
四、运行容器
我们现在用普通用户podman运行容器
1.切换到普通用户podman
su – podman
2.运行容器
podman run -d -p 8080:80 nginx

3.浏览器访问
浏览器访问http://[你的IP地址]:8080 ,成功访问nginx欢迎页面!

五、进阶配置
1.镜像自动清理(自动删无用镜像、停止容器)
# 编辑配置
cat >> /etc/containers/containers.conf <<EOF
[engine]
prune_events = true
EOF
手动一键清理:
podman system prune -a –volumes
2.限制日志大小,防止磁盘爆
限制单个容器日志最大 = 100MB,防止日志占满磁盘。
cat >> /etc/containers/containers.conf <<EOF
[containers]
log_size_max = 104857600
EOF
3.配置容器开机自启
①SSH登录到podman用户
ssh podman@服务器IP
②先运行一个nginx容器,并取名为nginx
podman run -d –name nginx -p 8080:80 nginx
③生成 systemd 服务文件
podman generate systemd –name nginx –files –new
④放入用户级 systemd 目录
mkdir -p ~/.config/systemd/user/
mv container-nginx.service ~/.config/systemd/user/
⑤重载配置、启用自启并立即运行
systemctl –user daemon-reload
systemctl –user enable –now container-nginx.service
⑥查看状态
# 查看运行状态
systemctl –user status container-nginx
# 查看是否开机自启
systemctl –user is-enabled container-nginx

⑦重启服务器
sudo reboot
重启后,直接访问 http://[你的IP地址]:8080 成功显示NGINX欢迎页面!Podman容器开启自启设置成功!
六、常用Podman指令
1.基础容器生命周期
| podman ps | 查看正在运行的容器 |
| podman ps -a | 查看所有容器(含已停止) |
| podman start 容器名/ID | 启动已停止容器 |
| podman stop 容器名/ID | 停止容器 |
| podman restart 容器名/ID | 重启容器 |
| podman rm 容器名/ID | 删除停止的容器 |
| podman rm -f 容器名/ID | 强制删除运行中容器 |
| podman run -d –name nginx -p 8080:80 nginx | 后台运行容器 |
| podman exec -it 容器名 /bin/bash | 进入容器终端 |
2.镜像管理(拉取、删除、导出)
| podman images | 查看本地镜像 |
| podman pull nginx | 拉取镜像 |
| podman rmi 镜像名/ID | 删除镜像 |
| podman tag 旧镜像 新镜像 | 给镜像打标签 |
| podman save -o nginx.tar nginx | 导出镜像为文件 |
| podman load -i nginx.tar | 导入镜像文件 |
3.数据卷&挂载
| podman volume ls | 查看所有数据卷 |
| podman volume create 卷名 | 创建数据卷 |
| podman volume rm 卷名 | 删除数据卷 |
| podman run -v 卷名:/容器内路径 镜像 | 挂载数据卷 |
| podman run -v /宿主机路径:/容器内路径 镜像 | 挂载宿主机目录 |
4.网络管理
| podman network ls | 查看网络 |
| podman network create my-net | 创建自定义网桥 |
| podman network rm my-net | 删除网桥 |
| podman run –network my-net 镜像 | 指定网络运行容器 |
5.日志资源查看
| podman logs 容器名 | 查看容器日志 |
| podman logs -f 容器名 | 实时跟踪日志 |
| podman stats | 查看容器 CPU / 内存占用 |
| podman top 容器名 | 查看容器内进程 |





