Docker环境下 - 搭建 Elasticsearch (7.6.2 - 8.0以上)

2 篇文章 0 订阅

1.下载Elasticsearch

docker pull elasticsearch:7.6.2

2.配置Elasticsearch

1.创建本地映射文件

mkdir /home/es /home/es/conf /home/es/data /home/es/plugins
// 直接启动
docker run --name es -p 9200:9200 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -d elasticsearch:7.6.2
//复制原始配置文件
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /home/es/elasticsearch.yml
cd /home/es
vim elasticsearch.yml
//新增本地访问IP地址 (8.0以下版本适用)
http.host: 0.0.0.0
//新增外网访问IP地址
#设定可以访问es的IP ,0.0.0.0 是全公开
transport.host: 0.0.0.0
//es8版本以上 需要关闭鉴权
elasticsearch.yml 中 所有的true => false

2.更改es文件夹权限 , 用来存储数据

chmod -R 777 /home/es

3. 启动Elasticsearch (手动启动)

docker run --name es -p 9200:9200 \
 -p 9300:9300 \
 -e "discovery.type=single-node" \
 -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
  -v /home/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v /home/es/data:/usr/share/elasticsearch/data \
 -v /home/es/plugins:/usr/share/elasticsearch/plugins \
 -d elasticsearch:7.6.2

配置说明

--name es:将容器命名为 es
-p 9200:9200:将容器的9200端口映射到宿主机9200端口
-p 9300:9300:将容器的9300端口映射到宿主机9300端口,目的是集群互相通信
-e "discovery.type=single-node":单例模式
-e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小 , 根据数量内容及值做变更
-v /home/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:将配置文件挂载到宿主机
-v /home/es/data:/usr/share/elasticsearch/data:将数据文件夹挂载到宿主机
-v /home/es/plugins:/usr/share/elasticsearch/plugins:将插件目录挂载到宿主机(需重启)
-d elasticsearch:7.6.2 :后台运行容器,并返回容器ID

4. 启动Elasticsearch (docker-compose 一键运行 )

1.需要安装docker-compose docker pull docker-compose
2.创建文件 vim docker-compose.yml , 内容如下

version: '2'
services:
  elasticsearch:
    container_name: es
    image: elasticsearch:7.6.2
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - /home/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /home/es/data:/usr/share/elasticsearch/data
      - /home/es/plugins:/usr/share/elasticsearch/plugins
    environment:
      - "ES_JAVA_OPTS=-Xms64m -Xmx128m"
      - "discovery.type=single-node"
      - "COMPOSE_PROJECT_NAME=elasticsearch-server"
    restart: always
  1. 运行
 docker-compose up -d    //以后台方式运行

小知识点

查看运行状态:docker-compose ps
停止运行:docker-compose stop
重启:docker-compose restart
重启单个服务:docker-compose restart service-name
进入容器命令行:docker-compose exec service-name sh
查看容器运行log:docker-compose logs [service-name]

验证是否成功

curl http://192.168.0.1:9200/

成功内容

{
  "name" : "f8810877f8f3",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "QcfyioGkRy6PPdhhyqmWFw",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

外网访问

服务器需要开放9200端口
es 只能用GET HEAD DELETE 三种形势访问!

curl -Get http://服务器IP地址:9200

异常篇

1.无法启动ES 或 ES重复启动 可能是因为设置map值太小了,需要增加Map量

查看max_map_count :
cat /proc/sys/vm/max_map_count
65530
 
设置max_map_count:
sysctl -w vm.max_map_count=262144
vm.max_map_count = 26214
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值