前面需要提前安装 docker 这里就不再赘述了
linux下指令:
docker exec -it elasticsearch /bin/bash
elasticsearch
为指令: docker ps ,中运行的容器名称
windows 下指令:
docker exec -it elasticsearch bash
docker ps
docker logs 服务的ID (CONTAINER ID)
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml
chmod -R 777 /mydata/elasticsearch/
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS=“-Xms64m -Xmx128m” \
-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
代码 | 说明 |
---|---|
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 | 开启elasticsearch 映射9200和9300端口 |
discovery.type=single-node | 单机模式-非集群 |
ES_JAVA_OPTS=“-Xms64m -Xmx128m” | 设置JVM的内存大小(我这里一直报错,解决办法如下) |
解决 ES_JAVA_OPTS=“-Xms64m -Xmx128m” 报错问题
可以发现有个jvm.options文件控制了启动参数,通过find命令查找该文件
[root@zq-zabbix ~]# find / -type f -name ‘jvm.options’
/etc/elasticsearch/jvm.options
可以发现该文件路径,打开编辑,最上面就能看到内存控制参数
-Xms1g -> -Xms64m
-Xmx1g -> -Xmx128m
将上面代码中 "-e ES_JAVA_OPTS=“-Xms64m -Xmx128m” " 这行删除,重新执行
重启生效:docker restart elasticsearch
顺利的话此时应该可以看到 elasticsearch 服务已经启动了
查看你得elasticsearch http://你得id:9200/
返回这个界面就说明配置成功了
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://x.x.x.x:9200 -p 5601:5601 -d kibana:7.4.2
注意:
这个x.x.x.x不是你服务器的IP 而是你elastic容器的 IP ,查看执行以下命令
如何查看XXXXXXX
docker ps -a
// 6a8152a1ad8 是你的容器编号 (CONTAINER ID)
docker inspect XXXXXXX |grep IPAddress
操作如下图:
关于配置这块引用一下这里 http://www.mamicode.com/info-detail-2868553.html
出现这个问题时
1、可能是服务还没有起来
2、kibana 启动服务报错了
此时用docker logs kibana容器ID 看一下错误
首先找到IK分词器的官方github
IK分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v7.5.0
首先确定下我们安装的位置
因为之前启动es时,我们将plugins文件夹挂载到了docker容器之外 /mydata/elasticsearch 目录下
所以现在我们只需要看一下这2个目录是否统一 (是统一的可以进入docker 容器内部看)
进入到外部 /mydata/elasticsearch/plugins 目录内
下载 IK分词器
指令如下
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
然后解压缩,并且删除压缩包
unzip elasticsearch-analysis-ik-7.4.2.zip -d analysis-ik
rm -rf elasticsearch-analysis-ik-7.4.2.zip
docker restart elasticsearch
docker run -p 80:80 --name nginx -d nginx
将容器内的配置文件拷贝到当前目录
docker container cp nginx:/etc/nginx .
mv nginx conf
mkdir nginx
mv conf nginx/
docker 启动并且映射到容器外部目录(windows下和mac下都有坑)
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx
docker run -p 80:80 --name nginx \
-v F:/wwwroot/mydata/nginx/html:/usr/share/nginx/html \
-v F:/wwwroot/mydata/nginx/logs:/var/log/nginx \
-v F:/wwwroot/mydata/nginx/conf:/etc/conf \
-d nginx
docker run -p 80:80 --name nginx \
-v /F/wwwroot/mydata/nginx/html:/usr/share/nginx/html \
-v /F/wwwroot/mydata/nginx/logs:/var/log/nginx \
-v /F/wwwroot/mydata/nginx/conf:/etc/conf \
-d nginx
docker run -p 80:80 --name nginx \
-v F:\wwwroot\mydata\nginx\html:/usr/share/nginx/html \
-v F:\wwwroot\mydata\nginx\logs:/var/log/nginx \
-v F:\wwwroot\mydata\nginx\conf:/etc/conf \
-d nginx
docker配置nginx的完整教程:https://blog.csdn.net/qq_42114918/article/details/85238011
目录结构 /Users/ctra_wl/Desktop/mydata/
docker run -p 80:80 --network bri1 --name nginx \
-v /Users/ctra_wl/Desktop/mydata/nginx/html:/usr/share/nginx/html:rw \
-v /Users/ctra_wl/Desktop/mydata/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /Users/ctra_wl/Desktop/mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /Users/ctra_wl/Desktop/mydata/nginx/logs:/var/log/nginx \
-d nginx
同样在挂载的外部目录 /mydata/nginx/html 中
如图,在html目录中新建一个es文件夹,里面放入一个 fenci.txt
的文本文件
然后 vi fenci.txt 在里面输入我们想要自定义的关键词
指令
docker update elasticsearch --restart-always
https://www.jianshu.com/p/3cb205b5354a