elasticsearch docker安装

拉取镜像

docker pull elasticsearch:7.9.3

创建目录

创建配置文件目录

mkdir -p /mydata/elasticsearch/config

注意: 需要修改权限,否则 docker容器 无权 在此目录下创建 log文件,导致启动失败

创建数据目录

mkdir -p /mydata/elasticsearch/data

注意: 需要修改权限,否则 docker容器 无权 在此目录下创建 数据文件,导致启动失败

创建插件目录

mkdir -p /mydata/elasticsearch/plugins

修改权限

将上面几个目录的权限修改为最高权限 777:

chmod -R 777 /mydata/elasticsearch/

创建配置文件

elasticsearch.yml

创建 elasticsearch.yml 配置文件,并写入数据:

echo "http.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml

注意::后面有 空格 隔开

运行容器

docker run \
--name elasticsearch7.9.3 \
-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.9.3

解释:

  • --name elasticsearch7.9.3:容器名字
  • -p 9200:9200:http请求端口号
  • -p 9300:9300:集群环境下,各节点通信端口
  • -e "discovery.type=single-node":单节点模式
  • -e ES_JAVA_OPTS="-Xms64m -Xmx512m":设置java内存,默认占用内存较大,导致卡顿
  • -v:将宿主机 目录 映射 到 容器内的目录。映射 配置文件、data数据目录、plugins插件目录
  • -d elasticsearch:7.9.3 指定镜像

启动失败

通过下面命令查看日志:

docker logs elasticsearch7.9.3

然后找到错误并解决

测试

访问 http://192.168.58.101:9200/ ,看到下面内容,说明启动成功:

解释:

  • name:docker容器id
  • cluster_name:节点名字(集群环境中)
  • cluster_uuid:节点唯一标识uuid(集群环境中)
  • number:版本号
  • build_type:部署方式
  • lucene_version:版本号