举杯邀月

Docker 安装启动 ElasticSearch 及 head 管理工具

摘要:Docker 最为一个开源的应用容器引擎,让开发者快速安装自己的应用,今天用 Docker 安装了 ElasticSearch 及 head 管理工具,期间也是各种报错,今天就整理一下作为收藏。

Docker 最为一个开源的应用容器引擎,让开发者快速安装自己的应用,今天用docker安装了 ElasticSearch 及 head 管理工具,期间也是各种报错,今天就整理一下作为收藏,方便下次安装使用。

一、ElasticSearch部署

1.1 拉取镜像

es默认是没有latest版本的,这里需要指定一个版本号6.8.0,更多版本号到:hub.docker.com 查看。

> docker pull elasticsearch:6.8.0
> docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
elasticsearch             6.8.0               d0b291d7093b        2 months ago        895MB
1
2
3
4

1.2 运行容器

ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到 Docker 容器中的ElasticSearch服务了,同时我们把这个容器命名为elastic。

docker run -itd --name elastic  -p 9200:9200 elasticsearch:6.8.0
1

如果启动因为内存不够而失败,添加参数 -e ES_JAVA_POTS="-Xms256m -Xmx256m" 限制内存大小。

启动大概需要几分钟左右,可以在本机访问 127.0.0.1:9200 来验证启动是否成功。

如果要在外部访问需要修改配置 network.host 我们在下一步中一块设置。

如果不需要使用 head 管理工具,到此处就已经安装完成。

1.3 添加跨域配置

Elastic 默认是不允许跨域的,如果不开启跨域,在head管理工具中是无法连接的

修改docker的应用配置,首先要进入到运行应用的终端。或者在启动的时候把配置文件映射到宿主机上。

> docker exec -it elastic /bin/bash
> cd config
> vi elasticsearch.yml
1
2
3

编辑配置文件,在末尾加入:

http.cors.enabled: true          //是否支持跨域,默认为false
http.cors.allow-origin: "*"      //当设置允许跨域,默认为*,表示支持所有域名,
network.host: 0.0.0.0            //设置为0.0.0.0允许所有访问
1
2
3

修改配置文件后需要重启容器

docker restart elastic
1

二、ElasticSearch-Head 部署

2.1 拉取镜像并启动容器

ElasticSearch-Head的默认端口为9100,同样将他映射到宿主机上,起名为elastic-head

> docker pull mobz/elasticsearch-head:5
> docker run -d --name elastic-head -p 9100:9100 mobz/elasticsearch-head:5
1
2

启动成功后访问 127.0.0.1:9100 即可看到管理界面

举杯邀月-技术博客

如果操作时报 406 错误码,参考 ElasticSearch-head 管理工具查询报 406 错误码

需要注意的是,如果是使用的阿里云、腾讯云的云服务器,一定要几个开发要访问的端口,否则无法访问。

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fd9b78d538ab.html

2020-10-11 标签: docker