下载ElasticSearch镜像
下载镜像,大概500多M,需要耐心等待.
docker pull elasticsearch:5.6.8
下载完了查看下镜像
[root@zjj101 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springbootdemo4docker latest e2c24e317572 2 months ago 676MB
elasticsearch 5.6.8 6c0bdf761f3b 2 years ago 570MB
启动ElasticSearch
注意!,ElasticSearch启动需要很大内存,如果你用的机器内存不够的话,可能会启动失败,先给这个帖子看完,再去操作ElasticSearch.
docker run -di --name=zjj_elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
上面这个命令启动的时候可能会启动失败,因为可能你机器内存不够.如果内存不够的话,用下面的命令指定堆内存来启动.
重点是 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" 参数
-Xms是最小堆大小
-Xmx是最大堆大小
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -di --name=zjjElasticSearch -p9200:9200 -p9300:9300 elasticsearch:5.6.8
查看容器
[root@zjj101 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
030fced83e42 elasticsearch:5.6.8 "/docker-entrypoint.…" About a minute ago Exited (1) About a minute ago zjj_elasticsearch
发现ElasticSearch 的status有问题.是Exited(1) 说明没正常启动成功,如果你的status为 Up XXX seconds 那么就说明启动成功了,帖子后面的内容就可以不看了.
启动失败错误解决
查看日志
命令: docker logs zjj_elasticsearch
[root@zjj101 containers]# docker logs zjj_elasticsearch
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid1.log
[root@zjj101 containers]#
意思是Java运行时环境的内存不足,无法继续运行。
停止并且删除掉原来的容器
停止并删除容器
[root@zjj101 ~]# docker stop zjj_elasticsearch
zjj_elasticsearch
[root@zjj101 ~]# docker rm zjj_elasticsearch
zjj_elasticsearch
指定VM参数并且重新启动容器
重点是 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" 参数
-Xms是最小堆大小
-Xmx是最大堆大小
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -di --name=zjjElasticSearch -p9200:9200 -p9300:9300 elasticsearch:5.6.8
查看是否启动成功
[root@zjj101 /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ef6fdea7877 elasticsearch:5.6.8 "/docker-entrypoint.…" 3 seconds ago Up 3 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp zjjElasticSearch
status为up 说明启动成功了.
浏览器访问 http://zjj101:9200/ 就能看到内容了. 说明启动成功了.