You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Ubuntu环境下MongoDB启动失败:Operation not permitted

解决Ubuntu 20.04 Docker环境启动MongoDB 6.x时的"Operation not permitted"错误

问题概述

在Ubuntu 20.04服务器的Docker环境中启动MongoDB容器时,出现致命错误:

mongo-db | {"t":{"$date":"2023-07-04T20:09:49.620+00:00"},"s":"F",  "c":"CONTROL",  "id":6384300, "ctx":"main","msg":"Writing fatal message","attr":{"message":"terminate() called. An exception is active; attempting to gather more information\n"}}
mongo-db | {"t":{"$date":"2023-07-04T20:09:49.620+00:00"},"s":"F",  "c":"CONTROL",  "id":6384300, "ctx":"main","msg":"Writing fatal message","attr":{"message":"std::exception::what(): Operation not permitted\n**Actual exception type: std::system_error**\n\n"}}

使用的docker-compose配置如下:

version: "3"
services:
  db:
    container_name: mongo-db
    image: mongo:latest
    networks:
      - mongo-backend

networks:
    mongo-backend:
        external: true

该配置在开发环境正常运行,已排除数据目录权限问题,当前Docker版本为20.10.7,服务器内核版本为4.4.0。

核心原因分析

MongoDB 6.0及以上版本对Linux内核版本有最低要求:必须≥4.14,而当前服务器使用的是4.4.0版本,远低于要求,导致MongoDB启动时无法完成必要的系统调用,抛出"Operation not permitted"错误。

解决方案

方案1:升级服务器内核(推荐)

Ubuntu 20.04支持升级到5.4及以上的长期支持内核,步骤如下:

# 更新软件源
sudo apt update
# 安装HWE内核(Ubuntu 20.04的硬件启用栈内核)
sudo apt install --install-recommends linux-generic-hwe-20.04
# 重启服务器生效
sudo reboot
# 验证内核版本(应显示5.4或更高)
uname -r

重启后重新启动MongoDB容器即可。

方案2:降级MongoDB版本

如果无法升级内核,可改用兼容旧内核的MongoDB 5.0版本(最低要求内核3.10),修改docker-compose.yml:

version: "3"
services:
  db:
    container_name: mongo-db
    image: mongo:5.0  # 替换为5.0版本
    networks:
      - mongo-backend

networks:
    mongo-backend:
        external: true

然后重新部署:

docker-compose down
docker-compose up -d

方案3:调整Docker容器安全配置(临时 workaround)

若以上方案暂时无法实施,可尝试添加必要的系统权限或关闭AppArmor限制(不推荐用于生产环境):
修改docker-compose.yml:

version: "3"
services:
  db:
    container_name: mongo-db
    image: mongo:latest
    networks:
      - mongo-backend
    # 添加系统权限
    cap_add:
      - SYS_ADMIN
      - NET_ADMIN
    # 关闭AppArmor限制
    security_opt:
      - apparmor:unconfined

networks:
    mongo-backend:
        external: true

注意:该方案仅作为临时解决,内核版本过低仍可能导致其他稳定性问题。

内容的提问来源于stack exchange,提问作者CWeasel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 05:07:45