本地环境:Mac、Parallels 装了一个Centos 7
本文大部分内容来源于xttblog同学
在Centos 7上安装docker
sudo yum update
sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo #更新源,国外的太慢
sudo yum makecache fast
sudo yum install docker-ce
sudo systemctl enable docker #配置开机启动
sudo systemctl start docker
docker run hello-world #测试
sudo groupadd docker #最后,如果你是非 root 用户。那么你可能无法访问 Docker 引擎的 Unix socket。因为,默认情况下,只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。因此,我们需要将当前用户,或者需要使用 docker 的用户加入 docker 用户组。
sudo usermod -aG docker $USER
在Centos 7上装Docker-Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose #下载
sudo chmod +x /usr/local/bin/docker-compose #修改权限
docker-compose version #测试
在Centos 7上运行Es\Kibana\Cerebro ,如果启动失败,建议单独服务单独配置,每个服务单独测试,容易排查问题:docker-compose -f xxxxxx.yml up
#在家目录新建一个es目录,然后docker-compose.yml,内容如下
version: '2.2'
services:
cerebro:
image: lmenezes/cerebro:0.8.3
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://elasticsearch:9200
kibana:
image: docker.elastic.co/kibana/kibana:7.6.1
container_name: kibana7
environment:
- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
- server.host=0.0.0.0
- elasticsearch.hosts="http://192.168.1.9:9200" #ip按照自己的改
ports:
- "5601:5601"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
container_name: es7_01
environment:
- cluster.name=geektime
- node.name=es7_01
- network.host=0.0.0.0
- http.port=9200
- node.master=true
- node.data=true
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01,es7_02
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es7data1:/usr/share/elasticsearch/data
ports:
- 9200:9200
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
container_name: es7_02
environment:
- cluster.name=geektime
- node.name=es7_02
- network.host=0.0.0.0
- http.port=9201
- node.master=true
- node.data=false
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01,es7_02
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es7data2:/usr/share/elasticsearch/data
ports:
- 9201:9201
volumes:
es7data1:
driver: local
es7data2:
driver: local
然后启动docker
#进入es目录 启动docker
docker-compose up #启动过程中 可能会报错之类的,自己度娘查找报错原因大部分可以解决
#mac浏览器访问
http://192.168.1.9:9200 #es1
http://192.168.1.9:9201 #es2
http://192.168.1.9:9200/_cat/nodes?v
http://192.168.1.9:5601 #kibana
http://192.168.1.9:9000 #cerebro
#如果无法访问可能是linux防火墙问题,自己telnet测试一下,或者关闭linux防火墙或者增加相应端口出入规则,启动较慢的时候也可导致无法访问,多等一会
给各位使用docker跑Elasticsearch安装插件的简单办法,无需dockerFile自制镜像。以本帖的双es启动为例:
1.进入es的容器并启动bash。 命令 docker exec -it es7_01 bash
注:es7_01 即容器名称
2..第一步成功你会发现你已经在容器内部,此时输入 pwd 命令会发现自己处于/usr/share/elasticsearch 路径。此时即可输入插件安装命令 bin/elasticsearch-plugin install analysis-icu
等待插件下载并安装完毕
3.输入exit退出容器bash。
4.如法炮制es7_02并安装插件。
5.docker-compose restart 重启容器
6.重启后,检查安装是否成功,输入 curl 127.0.0.1:9200/_cat/plugins,输出:
es7_01 analysis-icu 7.2.0
es7_02 analysis-icu 7.2.0
代表成功