1,下载镜像文件
打开虚拟机,root用户或sudo执行如下命令
docker pull elasticsearch:7.4.2(相当于mysql,存储和检索数据) docker pull kibana:7.4.2(相当于navicat,可视化检索数据)
2,创建实例
同样是root权限账户或sudo。
mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "http.host: 0.0.0.0" > /mydata/elasticsearch/config/elasticsearch.yml
前两句为了以后挂载es的配置文件用
echo这句是说写了个配置http.host: 0.0.0.0,代表能被远程的任何机器访问,>>代表写入到,elasticsearch.yml中(相当于es的配置文件)
最后一个sudo也不好使,需要先切换到root
su root
密码vagrant,再执行echo "http.host: 0.0.0.0" > /mydata/elasticsearch/config/elasticsearch.yml即可
然后再执行一大串命令
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.4.2
9200是发送http请求es的端口,9300是es在分布式集群状态下节点之间的通信端口,\是换行,
-e指定参数,single-node指定es单节点运行,ES_JAVA_OPTS指定es初始内存和最大内存,如果不指定会占用全部内存导致整个虚拟机卡死
-v挂载,,挂载的意思在前面的学习谷粒商城学习——docker安装mysql中已有介绍
-d,后台启动es用es7.4.2镜像
现在启动有点问题,需要指定/mydata/elasticsearch下所有用户可读写执行的权限
然后重新启动
启动成功后这样
{ "name" : "3cafb1a4b1b3",//当前节点的名字 "cluster_name" : "elasticsearch",//在集群中的名字 "cluster_uuid" : "0cNA2l38RFK6LMHislSvNg",//集群中的唯一标识 "version" : { "number" : "7.4.2",//es版本号 "build_flavor" : "default", "build_type" : "docker",//构建方式为docker "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96", "build_date" : "2019-10-28T20:40:44.881551Z", "build_snapshot" : false, "lucene_version" : "8.2.0",//底层使用的lucene的版本号 "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }