1.安装
docker pull elasticsearch:7.4.0
使用默认的docker pull elasticsearch失败了,在官网上找的最新的一个版本标签,加上去才能给正常下载
启动:
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9200:9200 -p 9300:9300 --name es01 elasticsearch:7.4.0
验证安装,页面访问:http://192.168.99.100:9200
失败了,发现docker中es01停止了,查看日志,发现报错:
ERROR: [2] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2]: the default discovery settings are unsuitable for production use; at least
one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_n
odes] must be configured
问题1:
需要修改docker配置:
docker-machine ssh
sudo sysctl -w vm.max_map_count=262144
问题2:
缺少必要的配置导致,需要在elasticsearch.yml文件中添加或修改为:
cluster.initial_master_nodes: ["node-1"]
因为docker中容器生存时间太短,根本来不及修改容器内部的文件内容,可以在启动docker的时候使用 -v 命令指定外部文件挂载来作为配置文件的方式解决:
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /d/docker/:/usr/share/elasticsearch/config/ -d -p 19200:9200 -p 19300:9300 --name es02 elasticsearch:7.4.0
将es的配置文件全部复制到c盘的docker目录下,再修改配置
1.注意这里对应的是文件夹,源文件中的配置文件不能缺少,否则启动会报空指针异常;
2.Windows下,-v 不能使用 D: ,使用 /d/ ;
3.不能单独挂载某一个文件,我在操作时想要单独挂载elasticsearch.yml,容器启动报错,提示指定挂载非目录。
或者使用docker cp替换文件的方式。我采用了第二种方式:
docker cp D:\\elasticsearch.yml es01:/usr/share/elasticsearch/config/elasticsearch.yml
问题解决,访问URL,出现内容。
2.测试
详细内容,见:Elasticsearch入门指南