麒麟OS容器运行时检查需依次验证Podman/Docker安装、runc/crun等OCI运行时存在性、podman info输出运行时映射、rootless容器执行能力及Docker兼容层状态。

一、检查系统是否已安装容器运行时
麒麟操作系统(Kylin OS)基于Linux内核,支持多种符合OCI标准的容器运行时,但具体可用性取决于发行版本及软件源配置。需先确认当前系统中已部署的容器工具及其版本。
1、打开终端,执行以下命令查询是否安装Podman:
rpm -q podman
2、执行以下命令查询是否安装Docker:
rpm -q docker
3、若返回“package xxx is not installed”,表示对应工具未安装;若返回类似“podman-4.9.4-1.ky10”或“docker-24.0.7-1.ky10”,则表明已安装且可进一步验证其运行时兼容性。
二、验证默认OCI运行时是否就绪
容器运行时(如runc、crun、kata-runtime等)是Podman或Docker实际启动容器的底层组件。麒麟OS通常预装runc,但需确认其存在并可被调用。
1、检查runc是否在系统PATH中且具备执行权限:
which runc && runc --version
2、若提示“command not found”,尝试安装runc:
sudo yum install -y runc
3、检查系统是否支持crun(轻量级替代运行时,常用于rootless场景):
which crun
三、使用podman info检测完整运行时栈
Podman内置的info命令可输出当前环境所识别的所有运行时、存储驱动、网络插件及命名空间支持状态,是判断兼容性的核心依据。
1、以普通用户身份运行以下命令(无需root):
podman info --format '{{.Host.OCIRuntimes}}'
2、该命令将返回JSON格式的运行时映射,例如:
map[crun:[/usr/bin/crun] runc:[/usr/bin/runc]]
3、若输出为空或报错“permission denied”,说明Podman未正确识别任何OCI运行时,需检查/usr/bin/下对应二进制是否存在且权限为755。
四、测试rootless容器运行能力
麒麟OS V10 SP1及以后版本默认启用user namespace支持,这是Podman rootless模式的基础。验证该能力可间接反映系统对现代容器运行时的兼容深度。
1、执行以下命令创建并运行一个最小化rootless容器:
podman run --rm -t alpine:latest echo "rootless OK"
2、若输出“rootless OK”且无权限错误,则表明userns已启用、/etc/subuid与/etc/subgid已正确配置、fuse-overlayfs可用。
3、若报错“user namespaces not enabled”,需检查内核参数:
cat /proc/sys/user/max_user_namespaces
4、若返回值为0,需临时启用:
sudo sysctl user.max_user_namespaces=15000
五、检测Docker守护进程兼容层状态
部分麒麟OS定制版提供docker-ce兼容包,其本质是通过符号链接或wrapper脚本调用Podman,需确认该兼容层是否激活并准确映射。
1、检查docker命令是否指向podman:
ls -l $(which docker)
2、若输出包含“-> /usr/bin/podman”或“-> /usr/bin/podman-docker”,说明兼容层已启用。
3、运行以下命令验证兼容层功能:
docker version --format '{{.Server.Version}}'
4、若返回Podman版本号(如“4.9.4”),而非Docker daemon版本,则确认兼容层生效;若报错“Cannot connect to the Docker daemon”,说明docker命令未被重定向或Podman未配置socket代理。

















