在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 启动。

通过浏览器进行访问

es1.png

数据输入

暫時先輸入任意的資料

curl -XPUT 'http://localhost:9201/twitter/tweet/1' -d '{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}'

索引已创建,显示了分片的情况。

create_index.png

尝试添加一个节点

docker run -d -p 9202:9200 -e "NODE_NAME=es2" --name es2 trial/elasticsearch

Node自动添加到集群中并创建了副本。
集群的健康状态也变为绿色。

es2.png
replica.png

另外增加

docker run -d -p 9203:9200 -e "NODE_NAME=es3" --name es3 trial/elasticsearch

分散得很好

es3.png

下一个是

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

广告
将在 10 秒后关闭
bannerAds