Elasticsearch和kibana的docker单实例部署

ylnxwlp 菲比啾比!

7.x版本

创建网段:

1
docker network create es-net

加载镜像

1
2
3
docker pull elasticsearch:7.13.4

docker pull kibana:7.13.4

运行Elasticsearch容器

必须先确保当前目录下有写权限的四个文件夹:es-data(数据)、es-config(配置)、es-logs(日志)、es-plugins(插件,提前将ik目录创建好,放入ik分词器)

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run -d \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v "$(pwd)/es-/usr/share/elasticsearch/data" \
-v "$(pwd)/es-logs:/usr/share/elasticsearch/logs" \
-v "$(pwd)/es-config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml" \
-v "$(pwd)/es-plugins:/usr/share/elasticsearch/plugins" \
--ulimit nofile=65536:65536 \
elasticsearch:7.13.4

为Elasticsearch配置密码

1
docker exec -it es ./bin/elasticsearch-setup-passwords interactive

运行kibana容器

kibana需要一个密码来连接es。我们使用 keystore 来安全地注入敏感配置。

首先确保当前目录下有一个写权限的文件夹:kibana-config。

我们需要提前写一个配置文件:

1
2
3
4
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://es:9200"]
elasticsearch.username: "kibana_system"
i18n.locale: "zh-CN"

临时启动一个Kibana容器来创建keystore。

1
2
3
4
docker run --rm \
-v /root/kibana-config:/usr/share/kibana/data \
kibana:7.13.4 \
kibana-keystore create

这会在kibana-config/kibana.keystore中生成一个空的keystore文件。

注入密码:

1
2
3
4
echo "密码" | docker run --rm -i \
-v /root/kibana-config:/usr/share/kibana/config \
kibana:7.13.4 \
kibana-keystore add --stdin elasticsearch.password

启动容器:

1
2
3
4
5
6
docker run -d \
--name kibana \
--network=es-net \
-p 5601:5601 \
-v "$(pwd)/kibana-config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro" \
kibana:7.13.4

现在,访问部署服务器的5601端口就可以看见kibana了,使用elastic(最高权限账户)和配置的密码(为Elasticsearch配置时配置)登录即可使用。

8.x版本

Elasticsearch在8版本做了很大的升级,7版本Java的客户端也不再使用,转向了便捷的lambda表达式写法。那我们就来部署一个8版本的单实例es+kibana吧。这里以8.18.8版本为例:

先创建起一个es工具容器,把里面的原生配置文件内容拿出来。

1
2
3
4
5
6
7
8
9
10
11
12
docker run -d \
-p 9200:9200 \
-p 9300:9300 \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
-e "discovery.type=single-node" \
--name es \
elasticsearch:8.18.8

docker cp -a es:/usr/share/elasticsearch/config/ /root/es/
docker cp -a es:/usr/share/elasticsearch/data/ /root/es/
docker cp -a es:/usr/share/elasticsearch/logs/ /root/es/
docker cp -a es:/usr/share/elasticsearch/plugins/ /root/es/

需要先创建出/root/es这个目录!

现在这个容器就帮我们把原生的文件拿出来了。删除这个容器,我们可以开始处理这些文件,进行一些我们自己的配置,比如在插件中放入IK分词器等。

  • 标题: Elasticsearch和kibana的docker单实例部署
  • 作者: ylnxwlp
  • 创建于 : 2025-10-07 17:43:28
  • 更新于 : 2025-10-26 16:17:36
  • 链接: https://www.swissroll.today/2025/10/07/Elasticsearch初入门——es和kibana的部署/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
Elasticsearch和kibana的docker单实例部署