docker吧 关注:6,666贴子:7,014
  • 2回复贴,共1

ElasticSearch在docker上启动报错

只看楼主收藏回复

我想通过docker-compose一键部署我的开发环境,我的ElasticSearch在启动时报错:
main ERROR Could not reconfigure JMX java.lang.NullPointerException: Cannot invoke "jdk.internal.platform.CgroupInfo.getMountPoint()" because "anyController" is null
我的docker环境:
Docker version 27.5.1-ce, build 4c9b3b011ae4


IP属地:四川1楼2025-04-24 03:28回复
    该错误通常与 JVM 检测 Docker 容器的 cgroup 配置失败有关,可尝试以下解决方法:
    方案一:修改 Docker 启动参数(推荐)
    1.编辑 Docker 服务配置
    sudo vi /etc/docker/网页链接
    2.添加配置(关闭 cgroup v2 兼容模式):
    {
    "exec-opts": ["native.cgroupdriver=systemd"]
    }
    3.重启 Docker
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    方案二:在 docker-compose 中为 ES 容器添加环境变量
    网页链接 的 Elasticsearch 服务中添加:
    environment:
    - ES_JAVA_OPTS=-网页链接 -Dcom.sun.management.jmxremote.local.only=false -Djava.awt.headless=true -Djdk.lang.Process.launchMechanism=vfork
    - JAVA_OPTS=-网页链接 -Dcom.sun.management.jmxremote.local.only=false -Djava.awt.headless=true -Djdk.lang.Process.launchMechanism=vfork
    方案三:检查 cgroup 版本
    1.确认当前 cgroup 版本
    cat /proc/1/cgroup | grep cgroup
    - 若包含 cgroup2,需确保 Docker 与 cgroup v2 兼容(Docker 20.10+ 支持)。
    2.若使用 cgroup v2,尝试在 Docker 配置中强制启用:
    {
    "cgroup-version": "2"
    }
    方案四:更新 Docker 和 Elasticsearch 版本
    - 确保 Docker 版本 >= 20.10,Elasticsearch 版本与 Docker 环境兼容(如 ES 7.17+ 对 cgroup v2 支持更好)。
    完成修改后,重新运行 docker-compose up 启动服务。如果仍报错,可提供 ES 日志完整堆栈信息进一步分析。


    IP属地:福建来自Android客户端2楼2025-04-24 08:09
    回复
      2025-12-30 16:13:22
      广告
      不感兴趣
      开通SVIP免广告
      问豆包的


      IP属地:福建来自Android客户端3楼2025-04-24 08:10
      回复