
在龙芯 3B6000 平台上运行 AnolisOS 23.4,通过系统默认仓库安装 Docker 后,可能会遇到一个典型问题:容器创建失败。这个问题并非源于 Docker 本身无法运行,而是由底层容器运行时与龙芯架构的兼容性问题引发的。具体表现为,当你尝试运行一个容器时,会收到一个关于seccomp安全模块无法识别 CPU 架构的错误。本文将直接切入主题,分析问题根源,并提供从临时规避到永久解决的完整方案,帮助你在龙芯平台上构建稳定可用的 Docker 环境。对于需要在龙芯平台上进行应用开发、测试或部署的开发者而言,Docker 是构建标准化环境的关键工具。然而,直接从 AnolisOS 官方仓库安装的 Docker 版本(如 24.0.9)可能包含一个未完全适配龙芯架构的runc组件,这会导致安全沙箱功能失效。本文将带你快速定位问题,验证临时解决方案,并最终通过替换为社区维护的、针对龙芯架构优化的 Docker 版本来一劳永逸地解决问题。整个过程不涉及复杂的编译,主要通过下载预编译的二进制文件或 RPM 包来完成。1. 核心问题与解决方案速览在深入操作之前,我们先通过一个表格快速了解问题的核心和对应的解决路径,让你对全局有清晰把握。项目说明问题现象在龙芯 3B6000 + AnolisOS 23.4 上,使用yum install docker安装 Docker 后,运行docker run命令创建容器失败。报错关键词unrecognized architecture 0xc0000102: unknown,seccomp filter根本原因系统仓库提供的 Docker 版本(如 24.0.9)所包含的容器运行时(runc)对龙芯(loongarch64)架构的 seccomp 支持不完整。临时解决方案在docker run命令中添加--security-opt seccomp=unconfined参数,禁用 seccomp 安全配置。不推荐用于生产环境。永久解决方案使用由kubernetes-loong64社区编译的、针对龙芯架构优化的 Docker 二进制文件或 RPM 包替换现有安装。影响范围主要影响需要创建新容器的操作,对已有的镜像拉取、Docker 服务启停无直接影响。硬件/系统门槛龙芯 3B6000 (loongarch64) 处理器,AnolisOS 23.4 操作系统。其他龙芯 3A5000/3C5000 等相同架构平台可能遇到类似问题。最终目标获得一个能正常创建和运行容器,且无需每次附加安全参数的 Docker 环境。2. 问题场景与复现首先,我们明确一下问题发生的典型场景。你在一台搭载龙芯 3B6000 处理器的机器上,安装了最新的 AnolisOS 23.4 操作系统。为了使用容器技术,你通过系统自带的 YUM 仓库安装了 Docker。标准安装命令与验证:# 1. 安装Docker sudo yum install -y docker # 2. 启动Docker服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 3. 验证Docker安装版本 docker --version # 输出可能为:Docker version 24.0.9, build ... docker info # 查看系统架构,确认是 loongarch64安装过程通常很顺利,服务也能正常启动。问题出现在你尝试运行第一个容器时。例如,尝试拉取并运行一个龙芯架构的 Debian 镜像:# 尝试从龙芯镜像站运行一个Debian容器 docker run -itd --name test-debian lcr.loongnix.cn/debian:14执行上述命令后,你将看到类似如下的错误信息:docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error loading seccomp filter into kernel