欢迎光临
我们一直在努力

Podman入门全指南:安装、配置与运行容器

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

supodman

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 容器名 查看容器内进程
赞(0)
未经允许不得转载:171主机测评 » Podman入门全指南:安装、配置与运行容器
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址