centos环境下使用docker安装部署ElasticSearch

1、去docker官网https://hub.docker.com/_/elasticsearch?tab=tags&page=1查看elasticsearch镜像有哪些版本:

2、使用以下命令拉取elasticsearch7.5.2版本的镜像:

docker pull elasticsearch:7.5.2

3、查看拉取下来的elasticsearch镜像:

docker images 

得到镜像的id为929d271f1798:

4、创建并启动一个elasticsearch容器:

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 929d271f1798

  其中,

  -d:表示后台运行容器并返回容器id;

  --name es:表示容器名字为es;

  -p 9200:9200 -p 9300:9300:9200是供http访问端口,9300是供tcp访问的端口,如果不做9200端口映射,浏览器就不能访问elasticsearch的服务,而9300端口用于其他elasticsearch节点的访问;

  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" : 配置容器环境变量,给JVM分配足够内存

5、docker ps -a查看所有容器,可以看到es的状态为up:

6、通过修改容器config目录下的elasticsearch.yml来修改elasticsearch的一些配置,先通过以下命令进入容器内部:

docker exec -it es /bin/bash

  进入到config目录下

然后使用yum install vim在容器内部安装vim编辑器,再用vim打开elasticsearch.yml,增加内容如下:

http.host: 0.0.0.0
cluster.name: "tkt-es-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

其中,

cluster.name:可以自定义集群名称。
network.host:当前es节点绑定的ip地址,如果需要开放对外访问这个属性必须设置。
http.cors.enabled:是否支持跨域,默认为false。
http.cors.allow-origin:当设置允许跨域,默认为*,表示支持所有域名,可以通过使用正则表达式来允许部分网站访问。

最后使用以下来重启容器使得配置生效。

docker restart es

7、重新访问9200端口,可以发现cluster_name已经发生改变,同时我们可以通过version.number来知道容器里的elasticsearch版本为7.5.2:

最后,如果启动elasticsearch失败,我们可以使用docker logs + 容器id来查看错误日志,常见的一种启动错误日志如下:

[2020-02-02T15:23:59,125][INFO ][o.e.n.Node               ] [] initializing ...
[2020-02-02T15:23:59,470][INFO ][o.e.e.NodeEnvironment    ] [bN0UVE5] using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/vda1)]], net usable_space [30.4gb], net total_space [39.2gb], spins? [possibly], types [ext4]
[2020-02-02T15:23:59,470][INFO ][o.e.e.NodeEnvironment    ] [bN0UVE5] heap size [503.6mb], compressed ordinary object pointers [true]
[2020-02-02T15:23:59,473][INFO ][o.e.n.Node               ] node name [bN0UVE5] derived from node ID [bN0UVE5USk2tkbBFPA538w]; set [node.name] to override
[2020-02-02T15:23:59,474][INFO ][o.e.n.Node               ] version[5.6.12], pid[1], build[cfe3d9f/2018-09-10T20:12:43.732Z], OS[Linux/3.10.0-1062.4.1.el7.x86_64/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_181/25.181-b13]
[2020-02-02T15:23:59,474][INFO ][o.e.n.Node               ] JVM arguments [-Xms2g, -Xmx2g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j.skipJansi=true, -XX:+HeapDumpOnOutOfMemoryError, -Xms512m, -Xmx512m, -Des.path.home=/usr/share/elasticsearch]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [aggs-matrix-stats]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [ingest-common]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-expression]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-groovy]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-mustache]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-painless]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [parent-join]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [percolator]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [reindex]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [transport-netty3]
[2020-02-02T15:24:02,635][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [transport-netty4]
[2020-02-02T15:24:02,636][INFO ][o.e.p.PluginsService     ] [bN0UVE5] no plugins loaded
[2020-02-02T15:24:07,879][INFO ][o.e.d.DiscoveryModule    ] [bN0UVE5] using discovery type [zen]
[2020-02-02T15:24:09,872][INFO ][o.e.n.Node               ] initialized
[2020-02-02T15:24:09,873][INFO ][o.e.n.Node               ] [bN0UVE5] starting ...
[2020-02-02T15:24:10,619][INFO ][o.e.t.TransportService   ] [bN0UVE5] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
[2020-02-02T15:24:10,654][WARN ][o.e.b.BootstrapChecks    ] [bN0UVE5] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2020-02-02T15:24:13,917][INFO ][o.e.c.s.ClusterService   ] [bN0UVE5] new_master {bN0UVE5}{bN0UVE5USk2tkbBFPA538w}{1wT8kMoSTlWybMfTdo8Lvg}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)[, ]
[2020-02-02T15:24:14,019][INFO ][o.e.h.n.Netty4HttpServerTransport] [bN0UVE5] publish_address {172.18.0.3:9200}, bound_addresses {[::]:9200}
[2020-02-02T15:24:14,020][INFO ][o.e.n.Node               ] [bN0UVE5] started
[2020-02-02T15:24:14,096][INFO ][o.e.g.GatewayService     ] [bN0UVE5] recovered [0] indices into cluster_state
[2020-02-02T15:59:18,821][INFO ][o.e.n.Node               ] [bN0UVE5] stopping ...
[2020-02-02T15:59:18,862][INFO ][o.e.n.Node               ] [bN0UVE5] stopped
[2020-02-02T15:59:18,862][INFO ][o.e.n.Node               ] [bN0UVE5] closing ...
[2020-02-02T15:59:18,882][INFO ][o.e.n.Node               ] [bN0UVE5] closed
[2020-02-02T15:59:24,380][INFO ][o.e.n.Node               ] [] initializing ...
[2020-02-02T15:59:24,773][INFO ][o.e.e.NodeEnvironment    ] [bN0UVE5] using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/vda1)]], net usable_space [30.3gb], net total_space [39.2gb], spins? [possibly], types [ext4]
[2020-02-02T15:59:24,773][INFO ][o.e.e.NodeEnvironment    ] [bN0UVE5] heap size [503.6mb], compressed ordinary object pointers [true]
[2020-02-02T15:59:24,775][INFO ][o.e.n.Node               ] node name [bN0UVE5] derived from node ID [bN0UVE5USk2tkbBFPA538w]; set [node.name] to override
[2020-02-02T15:59:24,776][INFO ][o.e.n.Node               ] version[5.6.12], pid[1], build[cfe3d9f/2018-09-10T20:12:43.732Z], OS[Linux/3.10.0-1062.4.1.el7.x86_64/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_181/25.181-b13]
[2020-02-02T15:59:24,776][INFO ][o.e.n.Node               ] JVM arguments [-Xms2g, -Xmx2g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j.skipJansi=true, -XX:+HeapDumpOnOutOfMemoryError, -Xms512m, -Xmx512m, -Des.path.home=/usr/share/elasticsearch]
[2020-02-02T15:59:27,812][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [aggs-matrix-stats]
[2020-02-02T15:59:27,812][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [ingest-common]
[2020-02-02T15:59:27,812][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-expression]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-groovy]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-mustache]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [lang-painless]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [parent-join]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [percolator]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [reindex]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [transport-netty3]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] loaded module [transport-netty4]
[2020-02-02T15:59:27,813][INFO ][o.e.p.PluginsService     ] [bN0UVE5] no plugins loaded
[2020-02-02T15:59:33,581][INFO ][o.e.d.DiscoveryModule    ] [bN0UVE5] using discovery type [zen]
[2020-02-02T15:59:35,435][INFO ][o.e.n.Node               ] initialized
[2020-02-02T15:59:35,437][INFO ][o.e.n.Node               ] [bN0UVE5] starting ...
[2020-02-02T15:59:36,036][INFO ][o.e.t.TransportService   ] [bN0UVE5] publish_address {172.18.0.3:9300}, bound_addresses {[::]:9300}
[2020-02-02T15:59:36,077][INFO ][o.e.b.BootstrapChecks    ] [bN0UVE5] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2020-02-02T15:59:36,119][INFO ][o.e.n.Node               ] [bN0UVE5] stopping ...
[2020-02-02T15:59:36,259][INFO ][o.e.n.Node               ] [bN0UVE5] stopped
[2020-02-02T15:59:36,260][INFO ][o.e.n.Node               ] [bN0UVE5] closing ...
[2020-02-02T15:59:36,290][INFO ][o.e.n.Node               ] [bN0UVE5] closed

 可以看到失败原因是elasticsearch用户拥有的内存权限太小,至少需要262144:

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

我们可以在centos里面使用root用户修改配置文件sysctl.conf:

vi /etc/sysctl.conf 

添加配置vm.max_map_count=655360(大于等于262144就行):

最后执行sysctl -p命令并重启elasticsearch容器就行。

发布了9 篇原创文章 · 获赞 0 · 访问量 4312

猜你喜欢

转载自blog.csdn.net/weixin_40759863/article/details/104151224