Kubuntu 20.04下Docker运行MongoDB 6.0.5报SIGABRT错误求助
MongoDB 6.0.5容器启动失败(SIGABRT信号)的原因及修复方案
可能的原因
- 宿主机与镜像的系统依赖不兼容:MongoDB 6.0.5-ubuntu2204镜像基于Ubuntu 22.04,依赖的glibc版本为2.35+,而Kubuntu 20.04自带的glibc是2.31。老旧的Docker版本(20.10.5)可能存在容器与宿主机的库共享冲突,触发进程断言失败。
- Docker版本过低:MongoDB 6.0对Docker的最低版本要求是20.10.14+,你使用的20.10.5版本缺少部分容器隔离特性,无法适配新版MongoDB镜像的运行需求。
- 数据目录权限错误:如果挂载了宿主机目录作为MongoDB数据卷,宿主机目录的权限未设置为容器内MongoDB进程(默认UID/GID为999)可读写,会导致初始化失败触发SIGABRT。
- 内存资源不足:MongoDB 6.0启动时需要至少1GB左右的可用内存,若宿主机或容器内存配额不足,WiredTiger引擎初始化会失败并终止进程。
修复步骤
- 升级Docker版本:将Docker升级到20.10.14或更高版本,确保兼容MongoDB 6.0镜像的运行要求。
- 检查并修正数据目录权限:如果使用了宿主机挂载目录,执行以下命令修改权限:
sudo chown -R 999:999 /path/to/your/mongo/data - 调整容器内存配额:启动容器时显式分配足够内存,例如:
docker run -d --name mongodb -m 2g -p 27017:27017 mongodb/mongodb-community-server:6.0.5-ubuntu2204 - 替换兼容的镜像版本:如果暂时无法升级Docker,可以改用基于Ubuntu 20.04的MongoDB镜像(如
mongodb/mongodb-community-server:6.0.5-ubuntu2004),避免系统依赖冲突。
内容的提问来源于stack exchange,提问作者Alok
相关产品推荐
相关产品推荐

