1.下载Elasticsearch
docker pull elasticsearch:7.6.2
2.配置Elasticsearch
1.创建本地映射文件
mkdir /home/es /home/es/conf /home/es/data /home/es/plugins
// 直接启动
docker run --name es -p 9200:9200 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -d elasticsearch:7.6.2
//复制原始配置文件
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /home/es/elasticsearch.yml
cd /home/es
vim elasticsearch.yml
//新增本地访问IP地址 (8.0以下版本适用)
http.host: 0.0.0.0
//新增外网访问IP地址
#设定可以访问es的IP ,0.0.0.0 是全公开
transport.host: 0.0.0.0
//es8版本以上 需要关闭鉴权
elasticsearch.yml 中 所有的true => false
2.更改es文件夹权限 , 用来存储数据
chmod -R 777 /home/es
3. 启动Elasticsearch (手动启动)
docker run --name es -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/es/data:/usr/share/elasticsearch/data \
-v /home/es/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2
配置说明
--name es:将容器命名为 es
-p 9200:9200:将容器的9200端口映射到宿主机9200端口
-p 9300:9300:将容器的9300端口映射到宿主机9300端口,目的是集群互相通信
-e "discovery.type=single-node":单例模式
-e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小 , 根据数量内容及值做变更
-v /home/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:将配置文件挂载到宿主机
-v /home/es/data:/usr/share/elasticsearch/data:将数据文件夹挂载到宿主机
-v /home/es/plugins:/usr/share/elasticsearch/plugins:将插件目录挂载到宿主机(需重启)
-d elasticsearch:7.6.2 :后台运行容器,并返回容器ID
4. 启动Elasticsearch (docker-compose 一键运行 )
1.需要安装docker-compose docker pull docker-compose
2.创建文件 vim docker-compose.yml , 内容如下
version: '2'
services:
elasticsearch:
container_name: es
image: elasticsearch:7.6.2
ports:
- "9200:9200"
- "9300:9300"
volumes:
- /home/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- /home/es/data:/usr/share/elasticsearch/data
- /home/es/plugins:/usr/share/elasticsearch/plugins
environment:
- "ES_JAVA_OPTS=-Xms64m -Xmx128m"
- "discovery.type=single-node"
- "COMPOSE_PROJECT_NAME=elasticsearch-server"
restart: always
- 运行
docker-compose up -d //以后台方式运行
小知识点
查看运行状态:docker-compose ps
停止运行:docker-compose stop
重启:docker-compose restart
重启单个服务:docker-compose restart service-name
进入容器命令行:docker-compose exec service-name sh
查看容器运行log:docker-compose logs [service-name]
验证是否成功
curl http://192.168.0.1:9200/
成功内容
{
"name" : "f8810877f8f3",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "QcfyioGkRy6PPdhhyqmWFw",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
外网访问
服务器需要开放9200端口
es 只能用GET HEAD DELETE 三种形势访问!
curl -Get http://服务器IP地址:9200
异常篇
1.无法启动ES 或 ES重复启动 可能是因为设置map值太小了,需要增加Map量
查看max_map_count :
cat /proc/sys/vm/max_map_count
65530
设置max_map_count:
sysctl -w vm.max_map_count=262144
vm.max_map_count = 26214