docker-compose安装7.12.0版ES+kibana【单点模式】

本文详细指导如何在Windows环境下安装ES和Kibana 7.12.0,涉及创建项目目录、配置docker-compose.yml、解决权限问题及启动与测试过程。重点在于解决启动失败的AccessDeniedException,通过调整文件权限确保顺利运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、前置条件

  1. 安装docker-compose,可以参考这篇文章 https://blog.youkuaiyun.com/weixin_43721000/article/details/125425947

二、安装ES+kibana

1.创建并进入项目根目录

mkdir -p /cxstar/es_kibana_7.12.0
cd /cxstar/es_kibana_7.12.0

2.创建 docker-compose.yml 文件

vim docker-compose.yml

内容如下

version: '3.5'                                    # docker-compose版本

services:
 elasticsearch:
  image: elasticsearch:7.12.0                     # 指定es基础镜像
  restart: always                                 # 开机自启
  networks:
   - es-kibana-net                                # 网络配置
  container_name: es7120                          # 容器名
  volumes:
   - ./data:/usr/share/elasticsearch/data         # 数据目录映射
   - ./plugins:/usr/share/elasticsearch/plugins   # 插件目录映射
  environment:
   - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"           # 1G内存
   - discovery.type=single-node                   # 单点模式
  ports:
    - '9200:9200'                                 # java、集群通信端口
    - '9300:9300'                                 # http通信端口
  privileged: true                                # root启动

 kibana:
  image: kibana:7.12.0                            # 指定kibana基础镜像
  restart: always                                 # 开机自启
  networks:
   - es-kibana-net                                # 网络配置
  container_name: kibana7120                      # 容器名
  ports:
   - '5601:5601'								  # kibana端口

networks:
  es-kibana-net:
    name: es-kibana-net                           # 创建网络

3.启动容器

docker-compose up -d

到此一般就安装完成了,但是可能会遇到下面的问题:

常见安装失败问题

启动后执行 docker ps 命令发现没有容器,启动失败了。
执行 docker logs -f <容器id> 查看容器日志,报错如下

uncaught exception in thread [main]
ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:396)
	at java.base/java.nio.file.Files.createDirectory(Files.java:694)
	at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:801)
	at java.base/java.nio.file.Files.createDirectories(Files.java:787)
	at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:265)
	at org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:202)
	at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:262)
	at org.elasticsearch.node.Node.<init>(Node.java:376)
	at org.elasticsearch.node.Node.<init>(Node.java:281)
	at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:219)
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:219)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:399)
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
	at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116)
	at org.elasticsearch.cli.Command.main(Command.java:79)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:81)

说明es没有权限操作挂载目录,无法绑定节点,赋予data目录权限即可

sudo chmod 777 /cxstar/es_kibana_7.12.0/data

删除es的docker容器,再次执行容器启动命令
在这里插入图片描述

启动成功


四、访问测试

  1. 访问5601端口,选择 Explore on my own
    在这里插入图片描述
  2. 选择菜单栏下的 Dev Tools
    在这里插入图片描述
  3. 请求es
    在这里插入图片描述
    ok
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都干的派森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值