docker搭建 elasticsearch 集群
1、下载 elasticsearch 镜像
docker pull elasticsearch:5.6.8
2、运行 elasticsearch 容器
2.1、先创建一个虚拟网卡
docker network create my_net
2.2、启动第一个 es 容器,命名容器为 es_01
docker run -d --name es_01 -p 9201:9200 -p 9301:9300 --network my_net --network-alias es_01 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch:5.6.8
参数说明:
-d: 后台运行
--name: 指定容器名
-p: 指定主机映射容器端口
--network: 指定网卡
--network-alias: 指定网络别名(有点类似于在虚拟网卡上加了一层域名,通过这个域名,就可以访问当前容器)
-e: 设置环境变量(因为 es 默认内存比较大,我这里内存不太够,所以改成了 512M)
2.3、修改容器配置,添加集群配置信息
执行如下命令,进入容器:
docker exec -it es_01 /bin/bash
然后执行如下命令,修改配置信息:
cat > config/elasticsearch.yml << EOF
# 设置允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
# 集群名称,保证唯一
cluster.name: my-elasticsearch
# 集群节点的名称, 保证唯一
node.name: node-1
# ip地址,必须为本机的ip地址
network.host: es_01
# 服务器端口号
http.port: 9200
# 集群间通信端口号
transport.tcp.port: 9300
# 设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["es_01:9300","es_02:9300","es_03:9300"]
EOF
2.4、重启容器使配置生效
docker restart es_01
2.5、按照同样的步骤,修改一下集群配置信息,然后新建另外两个容器,分别映射到主机的 9202 和 9203 端口
3、在 elasticsearch head 中查看集群信息
3.1、下载 elasticsearch head 插件
需要到 google 应用商店中去下载
3.2、在连接栏中输入任意节点的连接地址即可观察到集群信息
这里我输入 http://localhost:9201/ ,显示如图: