目录
一:查找ElasticSearch镜像
查询elasticsearch 的最新镜像
https://hub.docker.com/_/elasticsearch?tab=tags
二:拉取ElasticSearch镜像
docker pull elasticsearch:7.9.3
三:创建Elasticsearch容器
1. 创建创建所需挂载文件
mkdir -p /opt/elasticsearch_docker/config
mkdir -p /opt/elasticsearch_docker/data
echo "http.host: 0.0.0.0">>/opt/elasticsearch_docker/config/elasticsearch.yml
注意:http.host: 0.0.0.0 冒号后有一空格。
2.文件夹赋权
chmod -R 777 elasticsearch_docker/
对挂载文件赋予全局的用户权限,方便doker容器调用
否则会触发 AccessDeniedException[/usr/share/elasticsearch/data/nodes] 文件访问异常
3.命令启动
docker run \
--name elasticsearch \
--restart=always \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m -Duser.timezone=Asia/Shanghai" \
-v /opt/elasticsearch_docker/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/elasticsearch_docker/data:/usr/share/elasticsearch/data \
-v /opt/elasticsearch_docker/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.9.3
参数说明
--name elasticsearch:将容器命名为 elasticsearch
--restart=always: 容器自动重启
-p 9200:9200:将容器的9200端口映射到宿主机9200端口
-p 9300:9300:将容器的9300端口映射到宿主机9300端口,目的是集群互相通信
-e "discovery.type=single-node":单例模式
-e ES_JAVA_OPTS="-Xms128m -Xmx128m -Duser.timezone=Asia/Shanghai":配置内存大小和设置时区
-v /opt/elasticsearch_docker/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:将配置文件夹挂载到宿主机
-v /opt/elasticsearch_docker/data:/usr/share/elasticsearch/data:将数据文件夹挂载到宿主机
-v /opt/elasticsearch_docker/plugins:/usr/share/elasticsearch/plugins:将插件目录挂载到宿主机(需重启)
-d elasticsearch:7.9.3:后台运行容器,并返回容器ID
4.查看是否启动成功
docker ps -a
docker logs -f --tail 200 elasticsearch
curl http://127.0.0.1:9200/
{
"name" : "efcee23f71d5",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "deKOv1k4Sbuhw1lk8dwlow",
"version" : {
"number" : "7.9.3",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
"build_date" : "2020-10-16T10:36:16.141335Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
四:插件安装
安装方式
-
在线下载安装
进入容器docker exec -it elasticsearch bash
执行命令
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.12/elasticsearch-analysis-ik-6.8.12.zip
-
离线安装
在windows 下载好好后,上传到服务器上docker cp 本地文件的路径 container_id:<docker容器内的路径>
docker cp elasticsearch-analysis-ik-6.8.12.zip 05884d14c5dd:/usr/share/elasticsearch/
进入容器
docker exec -it elasticsearch bash
插件安装,执行以下命令进行安装,在提示时输入y,然后回车
./bin/elasticsearch-plugin install file:///usr/share/elasticsearch/elasticsearch-analysis-ik-6.8.12.zip
-> Downloading file:///usr/share/elasticsearch/elasticsearch-analysis-ik-6.8.12.zip [=================================================] 100%?? @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.net.SocketPermission * connect,resolve See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed analysis-ik
查看已安装插件
./bin/elasticsearch-plugin list
analysis-ik
注意:按对应版本下载,且这种方式在容器删除后,插件会消失,所以建议将将插件挂载到本地目录中
1. 中文分词器IK 安装
地址:https://github.com/medcl/elasticsearch-analysis-ik/tree/v6.8.12
2. 拼音分词器安装
地址:https://github.com/medcl/elasticsearch-analysis-pinyin/tree/v6.8.12
五:常见问题
- max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
编辑 /etc/sysctl.conf,追加以下内容:
保存后,执行vm.max_map_count=655360
最后重启容器sysctl -p
即使是docker安装,也是在主机上面修改这个配置