麒麟OS部署Podman需按场景选择方法:一、DNF/YUM源安装;二、Alvistack第三方仓库;三、离线RPM包安装;四、启用podman-docker兼容层;五、配置国内镜像加速与Rootless支持。

如果您在麒麟操作系统上希望部署容器运行时环境,但系统预装了Docker或未预装任何容器引擎,则需手动安装Podman以实现无守护进程、支持Rootless、兼容OCI标准的现代化容器管理。以下是针对麒麟OS(含Kylin Linux Advanced Server V11、银河麒麟V10 SP2等主流版本)安装Podman的多种可行方法:
一、使用系统默认DNF/YUM源安装
该方法适用于已配置可用软件源且网络连通的麒麟V11及部分V10 SP2系统,依赖官方仓库中内置的podman包,安装简洁、依赖自动解决。
1、确认系统包管理器类型并更新缓存
执行 dnf makecache 或 yum makecache 刷新元数据。
2、安装Podman主程序及插件
执行 dnf install -y podman podman-plugins;若为旧版YUM系统则使用 yum install -y podman podman-plugins。
3、验证基础功能
执行 podman --version 与 podman info | grep -E "host|buildah" 确认运行时与主机适配状态。
二、通过第三方稳定仓库安装(推荐离线/受限网络场景)
当系统默认源不含Podman(如中标麒麟V7、早期银河麒麟V10)或需指定高版本(如v4.9+),可引入openSUSE社区维护的Alvistack仓库,该仓库长期提供CentOS/RHEL兼容的最新Podman RPM包。
1、下载并配置Alvistack仓库文件
执行 wget https://download.opensuse.org/repositories/home:alvistack/CentOS_7/home:alvistack.repo -O /etc/yum.repos.d/home:alvistack.repo;若为CentOS 8/RHEL 8+对应麒麟V11,替换URL中 CentOS_7 为 CentOS_8 或 RHEL_8。
2、清理可能冲突的旧包缓存
执行 yum clean all && yum makecache 强制重载源索引。
3、安装指定版本Podman
执行 yum install -y podman-4.9.3-16.el7_8.x86_64(根据实际yum list available podman输出选择精确版本号)。
三、离线RPM包批量安装(适用于纯内网/无网络环境)
该方案专为银河麒麟V10 SP2等离线服务器设计,需提前在联网环境下载完整依赖链,避免因缺少slirp4netns、fuse-overlayfs、conmon等关键组件导致Podman无法启动Rootless容器。
1、准备离线依赖清单
在同架构联网机器执行:dnf download --resolve --destdir ./podman-rpms podman podman-plugins slirp4netns fuse-overlayfs conmon containers-common。
2、将./podman-rpms/目录整体拷贝至目标麒麟服务器。
3、按依赖顺序安装RPM包
执行 rpm -Uvh --nodeps ./podman-rpms/conmon-*.rpm;
再执行 rpm -Uvh --nodeps ./podman-rpms/slirp4netns-*.rpm;
最后执行 rpm -Uvh ./podman-rpms/*.rpm(跳过已安装项)。
四、启用Docker CLI兼容层(无缝迁移脚本)
为降低原有Docker脚本改造成本,可在卸载原Docker后启用podman-docker包,使docker命令自动调用Podman后端,保持语法与行为一致性。
1、确认已卸载冲突组件
执行 dnf remove -y moby docker-ce docker-ce-cli containerd runc 并清空 /var/lib/docker /etc/docker。
2、安装兼容层
执行 dnf install -y podman-docker;安装完成后,which docker 应指向 /usr/bin/docker(符号链接至podman)。
3、验证兼容性
执行 docker version 与 docker run --rm hello-world,输出应显示Podman版本且成功运行容器。
五、配置国内镜像加速与Rootless基础支持
完成安装后必须执行此步骤,否则拉取docker.io镜像将极慢甚至超时;同时启用Rootless需确保用户命名空间映射机制就绪,这是麒麟OS安全运行容器的前提。
1、创建镜像配置目录并写入加速地址
执行 mkdir -p /etc/containers;
执行 tee /etc/containers/registries.conf <<'EOF' 后粘贴以下内容:
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "https://xxxxxx.mirror.aliyuncs.com"
insecure = false
EOF(将xxxxxx替换为阿里云专属加速器ID)。
2、启用用户命名空间支持
执行 echo 'user.max_user_namespaces=15000' > /etc/sysctl.d/90-podman.conf;
执行 sysctl --system 加载新参数。
3、为当前用户分配子UID/GID范围
执行 usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER;
执行 newuidmap $USER 0 100000 65536 && newgidmap $USER 0 100000 65536 验证映射生效。

















