一定要构建自己的知识体系,找到自己的学习方法。就一个简单的安装,都会有人卡壳。
这篇文章我在介绍一下,如何在 Docker 中安装 Elasticsearch!
前提是你的 Docker 和 Docker-Compose 都已经安装成功了,当然,这里还暂时用不到 Docker-Compose。
目前讲师用的 Elasticsearch 是 7.2 的版本。这个版本,我们也可以在 Docker-hub 中搜索到。
docker search Elasticsearch
好几个,不知道咋选择。不怕,我教你,保持和讲师的版本一致就可以。
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0
这些这个命令,安装 Elasticsearch 7.2 的版本。
注意,不要看网上的一些教程,从 github 下,慢的很,基本上无法成功。
按照我的命令安装完成后,执行 docker images。
docker images
或者执行 docker image ls 是一样的效果。
docker image ls
可以看到我上面有两个镜像文件。我们先运行 hello-world。
docker container run hello-world
为了保证和老师的效果一致,你可以先新建一个 xttblog 文件夹。然后在这个文件夹中,新建一个 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.1.0
container_name: kibana7
environment:
- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- "5601:5601"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
container_name: es7_01
environment:
- cluster.name=xttblog
- node.name=es7_01
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01
- 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.1.0
container_name: es7_02
environment:
- cluster.name=xttblog
- node.name=es7_02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es7data2:/usr/share/elasticsearch/data
volumes:
es7data1:
driver: local
es7data2:
driver: local
要注意的是,老师上在本地运行的。我是在云服务器上运行的,因此,我这里没有 networks 配置项。
然后执行下面的命令,你就可以玩转你的第一个 Docker + Elasticsearch 了。
#启动
docker-compose up
#停止容器
docker-compose down
#停止容器并且移除数据
docker-compose down -v
#一些docker 命令
docker ps
docker stop Name/ContainerId
docker start Name/ContainerId
#删除单个容器
$docker rm Name/ID
-f, –force=false; -l, –link=false Remove the specified link and not the underlying container; -v, –volumes=false Remove the volumes associated to the container
#删除所有容器
$docker rm `docker ps -a -q`
停止、启动、杀死、重启一个容器
$docker stop Name/ID
$docker start Name/ID
$docker kill Name/ID
$docker restart name/ID
要注意的是,如果你看到这个提示:“max virtual memory areas vm.max_map_count [65530] is too low, increase to at least”。那说明你设置的 max_map_count 小了,编辑 /etc/sysctl.conf,追加以下内容:vm.max_map_count=262144保存后,执行:sysctl -p重新启动。
如果看到,ERROR: [1] bootstrap checks failed,就说明启动失败了。检查一下启动日志。加大内存,看看那里出错了,定位问题。
以上,希望能够对正在学习 Elasticsearch 和 Docker 的同学有帮助。如果你还有问题,可以加我微信:xttblog,一起精进!
: » Docker 安装 Elasticsearch 教程
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/252130.html