1. 通过docker pull elasticsearch:5.6.8
拉取镜像到本地
2. 先启动Elasticsearch(以下简称“ES”)用于拷贝主机中的配置文件和数据文件
Mac
docker run -p 9250:9200 \
-p 9350:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx1024m" \
--name elasticsearch5 \
-d elasticsearch:5.6.8
Linux
sudo docker run -p 9250:9200 \
-p 9350:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx1024m" \
--name elasticsearch5 \
-d elasticsearch:5.6.8
当ES启动成功后CLI将输出以下内容:
3. 通过Docker cp的命令行将主机的内容拷贝到宿主机
Mac
docker cp \
elasticsearch5:/usr/share/elasticsearch/config/ \
/Users/yuanzhenhui/Documents/docker_data/elasticsearch5
docker cp \
elasticsearch5:/usr/share/elasticsearch/data/ \
/Users/yuanzhenhui/Documents/docker_data/elasticsearch5
Linux
sudo docker cp \
elasticsearch5:/usr/share/elasticsearch/config \
/home/yzh/Documents/Installed/docker/docker_repo/elasticsearch5/config
sudo docker cp \
elasticsearch5:/usr/share/elasticsearch/data \
/home/yzh/Documents/Installed/docker/docker_repo/elasticsearch5/data
4. 编辑配置文件
Mac
打开 /Users/yuanzhenhui/Documents/docker_data/elasticsearch5/config 找到elasticsearch.yml文件。
写上以上配置信息后保存即可。
Linux
sudo vim
/home/yzh/Documents/Installed/docker/docker_repo/elasticsearch5/config/elasticsearch.yml
同理,也填上如上图所示的配置信息后保存即可。
5. 将原来执行的镜像删除并执行新的命令行
Mac
docker run -p 9250:9200 \
-p 9350:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx1024m" \
-v /Users/yuanzhenhui/Documents/docker_data/elasticsearch5/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /Users/yuanzhenhui/Documents/docker_data/elasticsearch5/data:/usr/share/elasticsearch/data \
--restart=always \
--name elasticsearch5 \
-d elasticsearch:5.6.8
Linux
sudo docker run -p 9250:9200 \
-p 9350:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx1024m" \
-v /home/yzh/Documents/Installed/docker/docker_repo/elasticsearch5/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/yzh/Documents/Installed/docker/docker_repo/elasticsearch5/data:/usr/share/elasticsearch/data \
--restart=always \
--name elasticsearch5 \
-d elasticsearch:5.6.8
若ES启动成功可以看到以下输出:
从上图可以看出ES的配置信息已经生效。
6. 安装分词插件
通过命令行Docker cp将分词压缩包上传到主机
Mac
直接在本地解压插件zip包,然后通过cp命令上传文件夹到Docker镜像中,当然了如果解压后的文件夹不叫analysis-ik的时候还需要重命名文件夹先。
docker cp \
/Users/yuanzhenhui/Downloads/analysis-ik \
elasticsearch5:/usr/share/elasticsearch/plugins
Linux
sudo docker cp \
/home/yzh/Downloads/elasticsearch-analysis-ik-5.6.8.zip \
elasticsearch5:/usr/share/elasticsearch/plugins
上传之后通过CLI进入主机,进入plugins目录对刚刚上传的zip文件进行解压。
cd /usr/share/elasticsearch/plugins
unzip elasticsearch-analysis-ik-5.6.8.zip -d analysis-ik
cd analysis-ik/elasticsearch
mv * ../
cd ..
rm -rf elasticsearch
cd ..
rm -rf elastic*
之后再重启ES
当看到上面红框的内容时表示分词插件已经安装成功,同理其他插件都是通过以上的方式进行安装。
7. Elasticsearch7的安装
其实ES7的安装模式跟ES5基本一致,这里就不详说了,下面给出Mac和Linux部署脚本。
7.1 下载Elasticsearch7的镜像之后就先启动一下
Mac
docker run -p 9270:9200 \
-p 9370:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx1024m" \
--name elasticsearch7 \
-d elasticsearch:7.5.2
Linux
sudo docker run -p 9270:9200 \
-p 9370:9300 \
-e ES_JAVA_OPTS="-Xms512m -Xmx1024m" \
--name elasticsearch7 \
-d elasticsearch:7.5.2
7.2 拷贝主机中的配置文件和数据文件到宿主机
Mac
docker cp \
elasticsearch7:/usr/share/elasticsearch/config \
/Users/yuanzhenhui/Documents/docker_data/elasticsearch7
docker cp \
elasticsearch7:/usr/share/elasticsearch/data \
/Users/yuanzhenhui/Documents/docker_data/elasticsearch7
Linux
sudo docker cp \
elasticsearch7:/usr/share/elasticsearch/config \
/home/yzh/Documents/Installed/docker/docker_repo/elasticsearch7/config
sudo docker cp \
elasticsearch7:/usr/share/elasticsearch/data \
/home/yzh/Documents/Installed/docker/docker_repo/elasticsearch7/data
7.3 修改ES中的配置信息以达到调优的效果,其中包含elasticsearch.yml和jvm.options两个文件
Mac
MacOS的情况下可以到相应路径下的对应文件按需修改即可
Linux
sudo vim /home/yzh/Documents/Installed/docker/docker_repo/elasticsearch7/config/elasticsearch.yml
sudo vim /home/yzh/Documents/Installed/docker/docker_repo/elasticsearch7/config/jvm.options
7.4 最终启动执行脚本运行
Mac
docker run -p 9270:9200 \
-p 9370:9300 \
-v /Users/yuanzhenhui/Documents/docker_data/elasticsearch7/config:/usr/share/elasticsearch/config \
-v /Users/yuanzhenhui/Documents/docker_data/elasticsearch7/data:/usr/share/elasticsearch/data \
--restart=always \
--name elasticsearch7 \
-d elasticsearch:7.5.2
Linux
sudo docker run -p 9270:9200 \
-p 9370:9300 \
-v /home/yzh/Documents/Installed/docker/docker_repo/elasticsearch7/config:/usr/share/elasticsearch/config \
-v /home/yzh/Documents/Installed/docker/docker_repo/elasticsearch7/data:/usr/share/elasticsearch/data \
--restart=always \
--name elasticsearch7 \
-d elasticsearch:7.5.2
若启动的过程中碰到过下面的错误:
ERROR: [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
这个时候只需要修改elasticsearch.yml在里面添加
cluster.initial_master_nodes: ["node-1"]
指定保留一个master节点即可解决。