Windows环境下docker安装Elasticsearch集群并配置
之前开发使用外部服务,都是在本地下载并运行,感觉有时候用的服务多了,第一每次去运行都很麻烦,第二感觉很占电脑内存。这两天接触了docker之后,感觉用起来贼方便,只要把各种服务都安装在docker上,使用的时候只需要把docker上的镜像 跑起来,感觉比较方便。具体运行逻辑我就不说了,下面主要讲一下window环境下使用docker安装ES并配置集群的步骤。1.docker安装具体...
之前开发使用外部服务,都是在本地下载并运行,感觉有时候用的服务多了,第一每次去运行都很麻烦,第二感觉很占电脑内存。这两天接触了docker之后,感觉用起来贼方便,只要把各种服务都安装在docker上,使用的时候只需要把docker上的镜像 跑起来,感觉比较方便。具体运行逻辑我就不说了,下面主要讲一下window环境下使用docker安装ES并配置集群的步骤。
1.docker安装
具体步骤https://www.runoob.com/docker/windows-docker-install.html这上面说的比较清楚,我就不多逼逼了,我是win7系统,和win10其实没太多区别,大家按着上面的步骤走,一般都没得啥问题。记得下载后配置下docker的环境变量就行了。
docker安装完成后, 双击Docker Quickstart Terminal运行。
看到这个小鲸鱼基本上就证明成功了。这里有个小问题,我发现这个控制台无法复制和粘贴数据,感觉手敲起来很慢。建议在本地安装Xshell,控制起来比较方便。
这里主机IP就是上面小鲸鱼下面显示的那个ip,默认用户名为docker,密码为tcuser。
2.es下载
用xshell连进去后,就可以操作docker了。
下载es的话,首先执行“docker search elasticsearch”,具体作用就是查找在doucker hub中查找对应镜像(个人感觉其实也没啥用)
接着执行“docker pull elasticsearch”,这步的意思是将镜像从docker库中下载到本地。注意在镜像名后面加上“:版本名”,可以下载指定的版本。如果不指定版本,每次都会去下载当前镜像的最新版本。我这边一直使用的是5.2版本,所以我指定了版本。输完这个指令后回车等待下载,因为我本地下载好了,就不再去执行了。
这里记得去把镜像地址换位国内的,如果用国外的,会非常慢,有时候下着下着就断流了,关于如何换镜像地址,请自行百度。国内比较常用的事阿里和网易云的镜像,请大家自行选择。
等待es下载完成后,直接执行“docker images”,如果能在列表中看到刚才下载的es,证明成功。TAG表示版本号,我这边是5.2.0。
3.集群配置
镜像完成之后,开始配置集群。“cd /.”进入根目录,然后在/home目录下建立一个存放配置文件的目录
新建es/config目录,并在目录下面新建三个配置文件es1.yml,es2.yml,es3.yml。下面贴上代码。
es1代码
cluster.name : market
node.name : master
transport.tcp.port : 9300
http.port : 9200
network.bind_host : 0.0.0.0
network.publish_host : 192.168.99.101
discovery.zen.ping.unicast.hosts : ["192.168.99.101:9300"]
node.master : true
es2代码
cluster.name : market
node.name : selver1
transport.tcp.port : 9301
http.port : 9201
network.bind_host : 0.0.0.0
network.publish_host : 192.168.99.101
discovery.zen.ping.unicast.hosts : ["192.168.99.101:9300"]
node.master : true
es3代码
cluster.name : market
node.name : selver2
transport.tcp.port : 9302
http.port : 9202
network.bind_host : 0.0.0.0
network.publish_host : 192.168.99.101
discovery.zen.ping.unicast.hosts : ["192.168.99.101:9300"]
node.master : true
4.启动容器
写好配置文件之后,记好对应的路径。控制台输入“docker images”,复制es的“IMAGE_ID”。
输入启动命令
docker run -d --name es1 -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -v /home/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml c9c606d302fb
docker run -d --name es2 -p 9201:9201 -p 9301:9301 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml c9c606d302fb
docker run -d --name es3 -p 9202:9202 -p 9302:9302 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -v /home/es/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml c9c606d302fb
-d: 后台启动
--name:启动的容器名称
-p:所绑定的端口
-e: 容器启动占用的内存大小
-v:自定义配置文件存放地址
c9c606d302fb:容器的IMAGES_ID
上面这条命令,大家主要是更换下配置文件存放地址,也就是/home/es/config/es1.yml,冒号后面的不用修改。最后c9c606d302fb是IMAGES_ID,改为自己的就行了。
容器启动后,可以输入docker logs es1查看启动日志。我这边启动正常 没有什么问题。
使用ElasticSearch Head工具进行测试连接。
也可以在控制台输入"docker ps -a",查看当前运行的容器。STATUS如果为up表示正常运行。
5.遇到问题
1.遇见报错“max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]”
直接在控制台输入
sudo sysctl -w vm.max_map_count=262144
2.进入root用户
可以在容器启动后,输入“ docker exec -it es1 /bin/bash”,切换到root权限。上面的-v 冒号后面的值就是es配置文件默认的存放地址,可以切换root用户后查看。
上面就是docker在windows下配置es集群的全部,也是刚刚docker入坑,如果有什么错误的地方,还请大家指出。
更多推荐
所有评论(0)