建设一个网站平台的费用,受欢迎的企业网站建设,电子工程师,做网站要用什么语言默认已经有docker环境 下载与安装 elasticsearch #xff0c;从hub.docker里面可以看到最新版本的镜像#xff0c;选择你想要的版本 本教程是以 7.17.7 为案例#xff0c;为啥不适用最新的#xff0c;首先个人一般需用最新的版本#xff0c;如果有亢很难填#xff0c;其次…默认已经有docker环境 下载与安装 elasticsearch 从hub.docker里面可以看到最新版本的镜像选择你想要的版本 本教程是以 7.17.7 为案例为啥不适用最新的首先个人一般需用最新的版本如果有亢很难填其次我自己的服务器下载的太慢还是配置了docker加速地址的拉取几个小时都下载不下来7.17.9版也一样直接放弃~ 最终挑到了7.17.7 【官方传递】https://hub.docker.com/_/elasticsearch
一、安装、运行 elasticsearch
拉取镜像 docker pull elasticsearch:7.17.7 运行实例
docker run -d --name elasticsearch -p 9200:9200 -e discovery.typesingle-node -e ES_JAVA_OPTS-Xms64m -Xmx512m elasticsearch:7.17.7访问 ip9200 出现该界面表示已经安装、运行成功
如果没有成功请看一下docker 运行的日志 docker logs [OPTIONS] CONTAINER OPTIONS说明 -f : 跟踪日志输出 –since :显示某个开始时间的所有日志 -t : 显示时间戳 –tail : 仅列出最新N条容器日志 为防止重要的数据掉失我们需要将es重要文件挂载到外部 1.找个存储文件的目录我这里放置在/usr/docker
执行复制容器文件命令 首先得知道运行的容器信息执行 docker ps 查看正在运行的实例
可通过 docker exec -it 容器id /bin/bash 进入容器内容查看通过 exit 退出容器内部
复制容器内容到 /usr/docker 目录 docker cp e3b71d0d624b:/usr/share/elasticsearch /usr/docker 复制完成就可以看到 es的一大推文件
删除之前运行的实例先停止再删除
docker stop xx
docker rm xxx 重新运行实例命令如下
docker run -d --name es -p 9200:9200 -p 9300:9300 -v /usr/docker/elasticsearch/data:/usr/share/elasticsearch/data -v /usr/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/docker/elasticsearch/logs:/user/share/elasticsearch/logs -v /usr/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /usr/docker/elasticsearch/backup:/usr/share/elasticsearch/backup -e discovery.typesingle-node -e ES_JAVA_OPTS-Xms64m -Xmx512m --restartalways elasticsearch:7.17.7参数部分解释elasticsearch更多docker相关参数可在hub.docker里面找到 -v xxx:/xx 表示要挂载的目录或文件 -e ES_JAVA_OPTS“-Xms64m -Xmx512m” 表示最大内存512M最小内存64M –restartalways 随docker自动重启 注这里限制内存 不然小服务器顶不住。 运行成功可以看到cpu,内存差点爆表不过不用担心稍会就会降下去。至于为啥会这样目前不太清楚有大神可以留言请教一下感谢好心人 二、安装elasticsearch可视化工具
这里选择了 elasticsearch head #拉取镜像 docker pull mobz/elasticsearch-head:5 #运行实例 docker run -p 9100:9100 --name elasticsearch-head -d mobz/elasticsearch-head:5 运行成功如下
虽然运行成功了但可以看到是未连接的状态就算输入了正确的ip地址还是不能连接打开F12可以看到是跨域的问题
解决办法 修改docker中elasticsearch的elasticsearch.yml文件在最后面加上
http.cors.enabled: true
http.cors.allow-origin: * 可像我这样找到已经挂载在外部的配置文件打开修改也可以使用命令随你喜欢~(记得重启服务) 如果没有挂载在外部的可进行容器里面修改强烈推荐挂载
docker exec -it 容器id /bin/bash
vi config/elasticsearch.yml
xxxx
#退出并重启服务
exit
docker restart 容器id重启服务后输入正确的ip,可以看到这个界面表明可以了 最后需要解决elasticsearch-head 面板操作数据时不显示报406的问题如图打开这些界面发现是空白的而且报错。 解决版本 修改_site/vendor.js 文件 6886行 contentType: “application/x-www-form-urlencoded”, 改成 contentType: “application/json;charsetUTF-8”, 7573行 var inspectData s.contentType “application/x-www-form-urlencoded” 改成 var inspectData s.contentType “application/json;charsetUTF-8” 你可以选择将文件挂载到外部去也可以进行容器里面直接修改。 ●先把elasticsearch-head的文件挂载到外部去这里就不详细的贴出来了。 docker cp 0b5e6db9316a:/usr/src/app /usr/docker/eshead
我这里遇到一个小问题在查看挂载信息发现文件确实时挂载成功了但是打开vendor.js发现还是原来的内容这让我很困惑不知道是不是缓存的原因。随后我在url后面加上了版本号发现还是原来的内容 ~~
只能暴力解决了后面在找个时间看看是什么回事 ~~
从外部复制文件到容器里面 docker cp /usr/docker/eshead/app/_site/vendor.js 容器id:/usr/src/app/_site
重启服务好了刷新界面看到这个界面就 ok
查看挂载信息 docker inspect 容器id
到此我们安装教程已经结束了下篇将与wep api 对接完成我们的全站搜索功能
附源加速