docker中安装elasticsearch

1. 下载镜像

必须指定版本,否则会报错

adc@adc-vm:~/db/es/config$ docker pull elasticsearch
Using default tag: latest
Error response from daemon: manifest for elasticsearch:latest not found: manifest unknown: manifest unknown

可以去https://registry.hub.docker.com/搜索镜像查看版本,我选择的是8.5.3

docker pull elasticsearch:8.5.3
docker pull kibane:8.5.3

2. kibana和elasticsearch需要互联,因此创建一个网络

docker network create es-net

3. 创建elasticsearch容器

mkdir -p ~/db/{config,data,logs,plugins}
docker run -d --name elasticsearch \
  -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" \
  -e "discovery.type=single-node" \
  -v ~/db/es/data:/usr/share/elasticsearch/data \
  -v ~/db/es/logs:/usr/share/elasticsearch/logs \
  -v ~/db/es/plugins:/usr/share/elasticsearch/plugins \
  --privileged --restart=always --network es-net \
  -p 9200:9200 -p 9300:9300 elasticsearch:8.5.3

3.1 elasticsearch不允许kibana通过elastic登录

别的版本我不知道,反正8.5.3不允许这么干,后面创建kibana的容器时会报错

adc@adc-vm:~/db/es/config$ docker logs kibana
[2023-01-02T00:03:08.415+00:00][INFO ][node] Kibana process configured with roles: [background_tasks, ui]
[2023-01-02T00:03:23.664+00:00][INFO ][plugins-service] Plugin "cloudExperiments" is disabled.
[2023-01-02T00:03:23.673+00:00][INFO ][plugins-service] Plugin "profiling" is disabled.
[2023-01-02T00:03:23.699+00:00][FATAL][root] Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
    at ensureValidConfiguration (/usr/share/kibana/node_modules/@kbn/core-config-server-internal/target_node/src/ensure_valid_configuration.js:25:11)
    at Server.preboot (/usr/share/kibana/src/core/server/server.js:188:5)
    at Root.preboot (/usr/share/kibana/src/core/server/root/index.js:48:14)
    at bootstrap (/usr/share/kibana/src/core/server/bootstrap.js:99:9)
    at Command.<anonymous> (/usr/share/kibana/src/cli/serve/serve.js:216:5)

 FATAL  Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html

3.2 elasticsearch修改用户密码

elasticsearch-reset-password -u ${username} -i
# -i 表示交互式执行,可以用来自己指定密码,没有此参数系统将会自动生成一个密码
# eg:
elasticsearch-reset-password -u elastic -i

3.3 创建新的超级用户用于kibana登录

# 登录容器
adc@adc-vm:~/db/es/config$ docker exec -it elasticsearch bash
# 创建用户 es_admin
elasticsearch@3a95706ce9c9:~$ bin/elasticsearch-users useradd es_admin
Enter new password: 
Retype new password: 
elasticsearch@3a95706ce9c9:~$

# 为用户es_admin增加超级用户权限
elasticsearch@3a95706ce9c9:~$ bin/elasticsearch-users roles -a superuser es_admin

4. 安装kibana容器

docker run -d --name kibana -p 5601:5601 \
  --network es-net \
  -e ELASTICSEARCH_URL=http://192.168.1.99:9200 \
  -e ELASTICSEARCH_HOSTS=http://192.168.1.99:9200 \
  -e ELASTICSEARCH_USERNAME="kibana" \
  -e ELASTICSEARCH_PASSWORD="HDLJD1lzsx--" \
  -v ~/db/kibana/data:/usr/share/kibana/data \
  -v ~/db/kibana/plugins:/usr/share/kibana/plugins \
  --privileged kibana:8.5.3

简单介绍一下上面的命令:
es_admin是之前创建的用于kibana登录的超级用户
es_admin_password是我创建用户时为其设置的密码

后记: 我一直失败,反复删除和安装容器,各种尝试,最后也不知道怎么成功的,真的要哭了
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana -i

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值