1、下载 elasticsearch 镜像
docker pull elasticsearch:5.6.8
2、运行 elasticsearch 容器
1) 先创建一个虚拟网卡
docker network create my_net
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)
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
4) 重启容器使配置生效
docker restart es_01
5) 按照同样的步骤,修改一下集群配置信息,然后新建另外两个容器,分别映射到主机的 9202 和 9203 端口
3、在 elasticsearch head 中查看集群信息
1) 下载 elasticsearch head 插件
需要到 google 应用商店中去下载
2)在连接栏中输入任意节点的连接地址即可观察到集群信息
这里我输入 http://localhost:9201/ ,显示如图: