第一步拉取镜像
第二步启动容器
创建网络
这个网络将会用来给 es 集群共享,kibana 也是 es 集群的一员
docker network create es-net
启动 elasticsearch
docker run -d --name es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" -v es-data:/usr/share/elasticsearch/data -v es-plugins:/usr/share/elasticsearch/plugins --privileged --network es-net -p 9200:9200 -p 9300:9300 elasticsearch:8.11.3
- -e “ES_JAVA_OPTS=-Xms512m -Xmx512m” 指定 elasticsearch 运行时的内存大小,不要设置太小,这个比较吃内存
- -e “discovery.type=single-node” 单机模式
- -v es-data:/usr/share/elasticsearch/data es文件存储路径
- -v es-plugins:/usr/share/elasticsearch/plugins es插件存储位置
- Docker–privileged是Docker提供的一个特殊的运行模式,它能够让容器中的进程获取到主机的完整权限,包括root权限。当我们需要在Docker中运行一些特殊的应用程序时,比如需要访问主机设备或者KVM(kernel-based virtual machine)等,就需要使用Docker–privileged模式。
测试是否启动成功
浏览器输入你的局域网 ip 或者 localhost,端口号 9200,这个端口号是我们将本地端口号与 docker 端口号做得映射,账号密码输入 elastic 123456 这个是 ES 的默认账号密码。
看到这个就说明搭建完成了。
启动 kibana
启动 kibana 之前有很多准备工作
- es 启动之后,默认是需要账号密码的。因此要为 kibana 创建一个用户
- 给该用户添加 kibana 系统权限,es 中有一种权限,是专门为 kibana 设计的
- 在windows 本地做一个 kibana 配置文件的映射。这是因为 windows 上的 docker 启动的 kibana, 进入容器之后,很多命令是残缺的,你想要修改配置文件及其困难,因此我们直接在外面创建一个 kibana 的配置文件,然后在创建 kibana 容器的时候做一个文件映射就行了。
创建 kibana 账号
# 进入容器
C:\Users\17359>docker exec -it es bash
# 进入可执行文件夹下
elasticsearch@3ea212b93fd2:~$ cd bin/
# 创建用户
elasticsearch@3ea212b93fd2:~/bin$ elasticsearch-users useradd yaowy
Enter new password:
Retype new password:
WARNING: Owner of file [/usr/share/elasticsearch/config/users] used to be [root], but now is [elasticsearch]
# 给新用户增加 kibana_system 权限
elasticsearch@3ea212b93fd2:~/bin$ elasticsearch-users roles -a kibana_system yaowy
WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch]
在本地做配置文件映射
手动创建 kibana.yml 文件,然后写入下面的内容
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
# 这里做了修改
elasticsearch.hosts: [ "http://es:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
# 汉化
i18n.locale: zh-CN
# 账号密码
elasticsearch.username: "yaowy"
elasticsearch.password: "123456"
上面的内容是 kibana 容器刚启动时生成的配置文件的拷贝加以修改和增加
启动 kibana
docker run -d --name kibana -e "ELASTICSEARCH_HOSTS=http://es:9200" --network=es-net -v D:\docker\kibana\config\kibana.yml:/usr/share/kibana/config/kibana.yml -p 5601:5601 kibana:8.11.3
命令中有做配置文件的映射。
键入地址 http://localhost:5601/
, 弹出输入框让我们输入账号密码,注意,这里的账号密码不是之前向 kibana 配置文件中写的账号密码,是我们前面用来访问 es 的账号密码,这里没有新增,所以直接输入 elsetic 和 123456 就进去了。
点击自己浏览。
好了,本地的 es 和 kibana 已经搭建完成了。