最近公司项目组要使用ElasticSearch,自己先学习一下,记录通过docker搭建的过程。
elasticsearch官方镜像会暴露9200 9300两个默认的http端口,可以通过此端口进行访问
- 9200: 对外提供服务的api使用端口
- 9300: 内部通信端口,包括心跳、集群内部信息同步
使用数据卷挂载自定义配置文件,以及进行存储数据持久化。分别挂载至:
- 配置文件: /usr/share/elasticsearch/config
- 存储数据: /usr/share/elasticsearch/data
elasticsearch目录结构
1 | bin:可执行文件,运行es的命令 |
配置文件
所以我们挂载的elasticsearch主要有一下几个配置文件:
- config/elasticsearch.yml 主配置文件
- config/jvm.options jvm参数配置文件
- cofnig/log4j2.properties 日志配置文件
运行elasticsearch镜像
我是直接拉取了最新的elasticsearch:7.2.01
2
3
4
5[root@iZwz91w0kp029z0dmueicoZ /root/elasticsearch]#docker run -d -p 9200:9200 -p 9300:9300 --name es -v $PWD/config:/usr/share/elasticsearch/config -v $PWD/data:/usr/share/elasticsearch/data elasticsearch:7.2.0
f22048b5909fe4ddb4c1a72bc30c375def5595c075eedcf8801bfd13bc06fae3
[root@iZwz91w0kp029z0dmueicoZ /root/elasticsearch]#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f22048b5909f elasticsearch:7.2.0 "/usr/local/bin/dock…" 44 seconds ago Exited (1) 42 seconds ago es
直接run发现没有启动成功,这时候需要查看下启动日志1
2ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
大概的意思就是:默认发现设置不适合生产使用; 必须配置[discovery.seed_hosts,discovery.seed_providers,cluster.initial_master_nodes]中的至少一个。
- discovery.seed_hosts
- discovery.seed_providers
- cluster.initial_master_nodes