- 下载es镜像
- 启动容器
- 测试es的9200端口
- 测试es的9300端口
在Linux中执行命令 docker pull elasticsearch:5.6.8
视频中,老师启动命令为 docker run -di --name="tensquare_es" -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
执行命令 docker ps
查看正在运行的容器 发现es并没有在后台启动 执行命令
docker logs tensquare_es
查看docker启动该容器过程中的错误 OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
报错信息如上,说的是内存不足. 解决方法 执行启动容器的时候,加上内存的参数. 具体可看我另一篇文章 https://blog.csdn.net/qq_33229669/article/details/86565828 修改启动命令为 docker run -d -p 9200:9200 -p 9300:9300 --name="es_" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" elasticsearch:5.6.8
再次执行docker ps
可以看到es在后台启动中了
放开9200和9300的防火墙端口. 在浏览器地址栏输入ip+9200的端口 出现如下的json数据,代表9200端口可用
先用9200的端口创建索引库 发送put请求 http://199.99.1995.199:9200/tensequare_article
返回如下的json数据,代表创建了tensequare_article名称的索引库
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "tensequare_article"
}
在tensquare_search模块中的yml中,修改es的ip 启动tensquare_search项目. 发送如下的post请求, 新增文档
返回数据如下,执行报错
控制台报错如下
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{DQm55u53TqCoBovuwkOd4w}{118.24.145.136}{118.24.145.136:9300}]]
说明9300端口是无法使用的.下一节解决9300端口无法使用的问题