游乐游手机版
首页/系统平台/文章详情

Linux下Podman安装配置与无守护进程容器详解

时间:2026-06-03 06:05
Podman在Ubuntu等现代Linux系统中可通过官方软件源直接安装,使用apt命令最为稳妥。安装后需验证版本并确保无根模式配置正确,包括检查用户ID映射和安装必要的网络依赖。应避免使用未经安全验证的一键脚本,以保障系统管理的规范性。

Linux如何安装和配置Podman:无守护进程容器工具详解

Linux怎么安装和配置Podman Linux无守护进程容器工具详解

对于大多数现代Linux用户来说,安装Podman其实可以变得非常简单。尤其是Ubuntu 20.04 LTS及之后的版本,官方软件源已经收录了Podman,这意味着你不再需要折腾第三方仓库或者手动编译。简单来说:直接使用apt包管理器就能上手。当然,如果你使用的是老版本系统或其他发行版,确实需要额外步骤,但先别急着去GitHub拉取源码,很多时候有更稳妥的选择。

Ubuntu上安装Podman:用apt最稳,别绕弯路

如果你是Ubuntu用户,那么恭喜,安装Podman最直接、最可靠的方法就是通过系统自带的包管理器。为什么这样说?因为官方源中的podman包已经针对当前系统的内核版本、cgroups配置以及网络组件(如slirp4netns)做了充分适配,特别是在无根(rootless)模式支持上,比手动安装的版本稳定得多。

具体操作只需几步:

  • 打开终端,运行 sudo apt update && sudo apt install podman,一气呵成完成安装。
  • 验证是否安装成功:输入 podman --version。正常情况下,你应该会看到类似 podman version 4.9.4 的输出(以2026年的主流版本为例)。
  • 万一提示找不到包,先别慌张。检查一下你的系统版本,运行 lsb_release -sc。只要输出是 focal(20.04)、jammy(22.04)或 noble(24.04),都原生支持。

这里有一个常见的“坑”需要特别提醒:不推荐使用那些 curl | bash 的一键安装脚本。这类脚本容易引入未签名的二进制文件,而且绕过了系统的包管理机制,日后升级或卸载都会变得麻烦。

rootless模式失败?请检查 /etc/subuid 和 /etc/subgid

Podman默认会尝试以无根模式运行,安全性更高。但很多用户第一次执行 podman run hello-world 时,可能会遇到 cannot find UID/GID for user 这样的报错。这背后的根源,其实是系统内核没有为你的用户账户分配独立的用户/组ID映射范围。

解决办法很明确:

  • 执行命令:sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER,为用户添加子ID范围。
  • 然后确认一下:运行 grep $USER /etc/subuid /etc/subgid,应该能看到两行输出,格式类似 youruser:100000:65536
  • 操作完成后,需要重启当前的登录会话(注销再登录),或者运行 newgrp $USER 来刷新组权限。

如果问题依然存在,并且报错提到了 slirp4netns not found,那可能是缺少了这个网络依赖。直接安装即可:sudo apt install slirp4netns(在Ubuntu 24.04及之后版本中,它通常已经是默认安装的一部分)。

podman pull拉不到镜像?先别急着换 registry

当你兴冲冲地使用 podman pull 想拉取镜像,却卡在 Getting image source signatures 这一步时,先别急着怀疑网络或更换镜像仓库。这往往不是证书问题,而是Podman默认启用了镜像签名验证策略(signature_policy),而你要拉取的镜像恰好没有提供签名。

怎么解决呢?有几个思路:

  • 临时方案(仅用于调试):在命令前加上环境变量,如 POLICY=skip podman pull nginx,跳过策略检查。
  • 永久修改(调整全局策略):编辑配置文件 /etc/containers/policy.json,将 "default" 部分替换为 [{"type": "insecureAcceptAnything"}]。这意味着接受任何来源的镜像,请权衡安全风险。
  • 更精细的控制:只对特定的镜像仓库关闭验证。这需要编辑 /etc/containers/registries.d/default.yaml,为指定仓库添加 insecure: true 配置。

另外,关于登录凭证有一个关键区别:Podman的登录信息默认存储在 $HOME/.config/containers/auth.json,而不是Docker使用的 ~/.docker/config.json。因此,你之前的Docker登录凭证并不能直接拿来使用。

podman run启动容器后立即退出?检查CMD和前台进程

这个问题是不是很眼熟?和Docker一样,podman run 命令只是启动容器内定义的主进程。一旦这个主进程执行完毕,容器自然就退出了。常见于直接运行一个bash终端,或者一个执行完就结束的Python脚本。

可以这样应对:

  • 如果是想交互式调试,记得加上 -it 参数:podman run -it ubuntu:22.04 bash
  • 如果要运行一个后台服务(比如Nginx),必须确保该服务在前台运行。例如,命令应该是 nginx -g "daemon off;",而不是在容器内执行 service nginx start(这会让服务转入后台,导致主进程结束)。
  • 如果使用包含systemd的镜像,需要添加 --systemd=true 参数,并确保镜像中的 /sbin/init 是可执行的。
  • 注意无根模式的网络限制:普通用户无法绑定1024以下的端口。所以 podman run -p 80:8080 会失败,应该改用 -p 8080:80。使用 net=host 共享主机网络可以绕过,但一般不推荐,因为它会降低隔离性。

话说回来,还有一个真正容易被忽略的细节:rootless容器与cgroup v2的兼容性。Ubuntu 22.04+ 默认使用cgroup v2,但某些旧内核或自定义内核可能没有开启统一层级(unified_cgroup_hierarchy)。这会导致 podman info 显示 cgroupVersion: v1,此时无根模式可能会静默降级,表现出类似有根模式的行为。因此,务必运行 podman info | grep cgroup 来确认当前的环境,这才是避免后续各种权限问题的关键所在。

来源:https://www.php.cn/faq/2406361.html
上一篇Windows任务管理器如何查看显卡显存实时占用教程 下一篇Linux禁止root远程登录提升系统安全设置
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Windows系统关闭完成设备设置提示禁用开机引导方法
系统平台 · 2026-06-03

Windows系统关闭完成设备设置提示禁用开机引导方法

Windows开机时“完成设备设置”提示常因OOBE流程未完成、账户同步残留或系统推荐服务引起。本文提供五种解决方法:关闭登录选项中的自动设置复原;禁用系统通知中的引导提示;清除本地OOBE缓存;修改注册表标记OOBE已完成;关闭账户同步的设置推荐服务。用户可按需选择处理。

Win10更新后变卡,关闭更新恢复系统流畅度
系统平台 · 2026-06-03

Win10更新后变卡,关闭更新恢复系统流畅度

电脑刚刚完成Windows 10更新,却感觉运行变得迟钝?鼠标拖拽不顺畅,程序启动缓慢,风扇持续高速运转——这是不少用户都曾遇到的困扰。别急着认定是硬件老化,问题很可能就出在本次更新上。新补丁有时会引发驱动兼容性问题,或意外激活某些非必要的后台服务,导致系统资源被悄悄消耗。 不必担心,以下方法能帮你

Win11更新导致音频服务消失 修复声卡服务教程
系统平台 · 2026-06-03

Win11更新导致音频服务消失 修复声卡服务教程

Win11系统更新后,任务栏音量图标突然失效,设备管理器中声卡驱动显示正常却没有任何声音输出——如果你正被这个问题困扰,那很可能是系统更新误删了音频服务的核心注册表配置。别担心,这通常不是硬件故障,只需按照以下系统化修复步骤操作,大概率能恢复音频功能。 一、强制重建音频服务注册表与可执行路径 声音消

统信UOS系统管理启动内核并切换旧版本的方法
系统平台 · 2026-06-03

统信UOS系统管理启动内核并切换旧版本的方法

在使用统信UOS系统时,系统更新后新内核与硬件出现兼容性问题并不罕见——例如网卡突然无法连接、显卡渲染出现异常,或是触摸板完全失灵。遇到这种情况不必急着重装系统,多数时候只需手动切换回一个经过验证的旧版内核,问题就能顺利解决。下面这份操作指南将带你一步步完成从排查到永久切换的完整流程。 一、查看当前

Win11系统托盘永久显示关闭自动隐藏技巧
系统平台 · 2026-06-03

Win11系统托盘永久显示关闭自动隐藏技巧

你是否也曾为Windows 11任务栏右下角的系统托盘图标自动隐藏而感到困扰?常用的网络、音量或第三方应用图标总是悄悄“折叠”起来,必须点击那个小箭头才能展开查看。这其实是系统默认的“动态隐藏”策略在起作用,旨在保持任务栏简洁。但如果你和我一样,更希望所有图标一目了然、随时可用,那么彻底关闭这个自动