龙芯3B6000上AnolisOS 23.4 Docker容器创建失败:seccomp架构识别问题与解决方案

发布时间:2026/7/28 10:47:31
龙芯3B6000上AnolisOS 23.4 Docker容器创建失败:seccomp架构识别问题与解决方案 这次我们来看一个在龙芯 3B6000 平台上使用 AnolisOS 23.4 时,通过系统默认仓库安装 Docker 后,容器无法创建的问题。如果你正在龙芯架构上部署容器化应用,或者计划将服务迁移到国产化平台,那么这篇文章可以直接收藏。核心问题在于,AnolisOS 23.4 默认仓库提供的 Docker 版本(24.0.9)存在一个与 seccomp 安全模块相关的架构识别问题,导致运行容器时报错。本文将带你快速定位问题根源,并提供从临时规避到永久解决的完整方案,包括如何安装由社区维护的、兼容性更好的 Docker 版本。最值得关注的是,这个问题并非 Docker 本身无法运行,而是特定版本在龙芯架构下的一个兼容性 Bug。通过简单的参数调整或版本升级即可解决。本文会详细演示在 AnolisOS 23.4 最小化安装环境下的问题复现、诊断过程,并给出三种解决方案:临时禁用 seccomp、手动安装社区编译的二进制文件,以及配置第三方 RPM 仓库进行升级。无论你是开发者还是运维工程师,都能按照步骤操作,快速恢复 Docker 容器的正常创建与运行。1. 核心能力速览能力项说明问题平台龙芯 3B6000 (LoongArch64 / loong64) 处理器操作系统AnolisOS (龙蜥) 23.4问题软件系统默认仓库安装的 Docker 24.0.9问题现象运行docker run创建容器时,报错unrecognized architecture 0xc0000102问题根源Docker 内置的 seccomp 配置文件无法正确识别龙芯架构临时方案运行容器时添加--security-opt seccomp=unconfined参数永久方案安装由kubernetes-loong64社区编译的更高版本 Docker (如 29.5.1)解决效果无需额外参数,可直接正常创建和运行容器适合场景在龙芯架构的 AnolisOS 上需要稳定运行 Docker 服务的开发与生产环境2. 适用场景与使用边界这个问题主要影响在龙芯 LoongArch64 架构上使用AnolisOS 23.4操作系统,并通过yum install docker命令从默认仓库安装 Docker 的用户。如果你是在 x86_64 或 ARM64 架构上运行 Docker,或者使用的是其他版本的 AnolisOS 或 Docker 发行版,则可能不会遇到此问题。适合谁解决:正在龙芯平台上搭建 CI/CD 流水线,需要使用 Docker 执行器的开发者。计划将原有基于 Docker 的微服务架构迁移至龙芯平台的运维工程师。在国产化环境中进行软件适配和测试的技术人员。任何在龙芯 AnolisOS 上学习或使用 Docker 的爱好者。使用边界与注意事项:临时方案 (seccomp=unconfined):仅适用于快速测试和验证,不推荐用于生产环境,因为它会禁用容器的 seccomp 安全配置,降低容器安全性。社区版本来源:永久解决方案依赖于github.com/kubernetes-loong64组织编译的软件包。使用前应评估其稳定性和社区支持情况。系统兼容性:本文解决方案基于 AnolisOS 23.4 最小化安装测试。其他衍生版本或不同系统配置可能需要微调。生产部署:在生产环境中部署前,务必在测试环境中充分验证新版本 Docker 的稳定性和与现有应用的兼容性。3. 环境准备与前置条件在开始解决问题之前,请确保你的环境与问题描述一致。以下是复现和解决该问题所需的基本环境。操作系统确认:首先,通过以下命令确认你的系统是 AnolisOS 23.4 且架构为 LoongArch64。# 查看系统版本 cat /etc/os-release # 查看内核与架构信息 uname -a预期输出应类似于:NAME="Anolis OS" VERSION="23.4" ID="anolis" ... Linux anolis 6.6.102-5.3.3.an23.loongarch64 #1 SMP ... loongarch64 GNU/LinuxDocker 安装状态确认:检查是否已通过默认仓库安装 Docker,并确认其版本为 24.0.9。# 检查 Docker 是否已安装及版本 docker --version # 或 docker info | grep "Server Version"如果未安装,可以通过系统仓库安装(这将导致我们待会要解决的问题):sudo yum install -y docker sudo systemctl start docker sudo systemctl ena