在Docker中轻松尝试Elasticsearch集群
我想做的事情
使用Docker轻松创建Elasticsearch集群
环境
-
- Windows8(ホスト)
-
- CoreOS(仮想マシン)
- Docker(仮想コンテナ)
环境的准备
准备CoreOS
安装VirtualBox和Vagrant
以下是下载链接:
https://www.virtualbox.org/wiki/Downloads
http://www.vagrantup.com/downloads.html
安装Coreos-Vagrant。
git clone https://github.com/coreos/coreos-vagrant/
cd coreos-vagrant
启动CoreOS
vagrant up
登录CoreOS
vagrant ssh
准备 Docker
从这里开始,将进行在CoreOS上的操作。
创建Dockerfile (Chuangjian Dockerfile)
因为想要在公式映像中添加HEAD插件,同时也想要通过环境变量指定节点名称,所以我将创建Dockerfile。
FROM dockerfile/elasticsearch
RUN /elasticsearch/bin/plugin --install mobz/elasticsearch-head
RUN sed -ri 's/^#node\.name.*/node.name: "${NODE_NAME}"/g' /elasticsearch/config/elasticsearch.yml
EXPOSE 9200
CMD /elasticsearch/bin/elasticsearch
构建Dockerfile。
docker build -t trial/elasticsearch .
准备工作完成了
确认群集。
试着启动节点。
docker run -d -p 9201:9200 -e "NODE_NAME=es1" --name es1 trial/elasticsearch
在命令行中使用以下选项以将端口 p 上的 9201 转发到 Elasticsearch 的 9200 端口。
通过选项 -e “NODE_NAME=es1” 设置环境变量。
通过选项 –name,将容器命名为 es1 启动。
通过浏览器进行访问

数据输入
暫時先輸入任意的資料
curl -XPUT 'http://localhost:9201/twitter/tweet/1' -d '{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}'
索引已创建,显示了分片的情况。

尝试添加一个节点
docker run -d -p 9202:9200 -e "NODE_NAME=es2" --name es2 trial/elasticsearch
Node自动添加到集群中并创建了副本。
集群的健康状态也变为绿色。


另外增加
docker run -d -p 9203:9200 -e "NODE_NAME=es3" --name es3 trial/elasticsearch
分散得很好

下一个是
由于创建了集群环境,我打算尝试关闭或启动节点来进行各种测试。