docker怎么安装es

发布时间:2021-08-16 20:20:15 作者:chen
来源:亿速云 阅读:253
# Docker怎么安装Elasticsearch(ES)

## 一、前言

Elasticsearch(简称ES)是一个基于Lucene构建的开源分布式搜索引擎,广泛应用于日志分析、全文检索、数据分析等领域。使用Docker安装Elasticsearch能够快速搭建环境,避免复杂的依赖配置。本文将详细介绍如何通过Docker安装Elasticsearch,并涵盖常见问题解决和优化配置。

---

## 二、准备工作

### 1. 安装Docker
确保已安装Docker环境:
```bash
# 检查Docker版本
docker --version
# 若未安装,参考官方文档安装:
# https://docs.docker.com/engine/install/

2. 拉取Elasticsearch镜像

官方提供了多个版本的镜像,推荐使用指定版本(如8.11.1):

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.11.1

三、单节点安装

1. 启动容器

docker run -d \
  --name es-single-node \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.1

参数说明: - -p 9200:9200:暴露HTTP API端口。 - -p 9300:9300:集群通信端口(单节点模式下可不使用)。 - discovery.type=single-node:设置为单节点模式。 - ES_JAVA_OPTS:配置JVM堆内存(建议不超过物理内存的50%)。

2. 验证安装

访问 http://localhost:9200,返回如下JSON即成功:

{
  "name" : "d4a4c3a7f5b2",
  "cluster_name" : "docker-cluster",
  "version" : { ... }
}

四、集群模式安装

1. 创建Docker网络

docker network create es-net

2. 启动多个节点

节点1

docker run -d \
  --name es-node1 \
  --network es-net \
  -p 9200:9200 \
  -e "node.name=es-node1" \
  -e "cluster.name=es-docker-cluster" \
  -e "cluster.initial_master_nodes=es-node1" \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.1

节点2

docker run -d \
  --name es-node2 \
  --network es-net \
  -e "node.name=es-node2" \
  -e "cluster.name=es-docker-cluster" \
  -e "discovery.seed_hosts=es-node1" \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.1

五、数据持久化与配置

1. 挂载数据卷

避免容器删除后数据丢失:

docker run -d \
  --name es-with-volume \
  -v es_data:/usr/share/elasticsearch/data \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.1

2. 自定义配置文件

创建 elasticsearch.yml

cluster.name: "custom-cluster"
network.host: 0.0.0.0

挂载配置文件:

docker run -d \
  -v ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.1

六、安全配置

1. 启用身份验证(ES 8.0+)

默认开启安全功能,首次启动会输出默认密码:

# 查看初始密码
docker logs es-container | grep "Password for the elastic user"

2. 配置TLS证书

docker exec -it es-container \
  bin/elasticsearch-certutil ca --out /tmp/elastic-stack-ca.p12 --pass ""

七、常见问题解决

1. 启动时报错 max virtual memory areas too low

# 临时解决
sudo sysctl -w vm.max_map_count=262144
# 永久生效(写入/etc/sysctl.conf)
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

2. 性能优化建议


八、通过Docker Compose部署

示例 docker-compose.yml

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.11.1
    environment:
      - discovery.type=single-node
    ports:
      - "9200:9200"
    volumes:
      - es_data:/usr/share/elasticsearch/data

volumes:
  es_data:
    driver: local

启动命令:

docker-compose up -d

九、总结

通过Docker安装Elasticsearch具有以下优势: 1. 快速部署:无需手动安装Java或配置环境。 2. 隔离性:容器化运行避免污染主机环境。 3. 灵活扩展:轻松实现单节点或集群部署。

建议生产环境中结合Kubernetes或Swarm实现高可用部署,并定期备份数据卷。

延伸阅读
- Elasticsearch官方Docker指南
- Docker内存限制最佳实践 “`

:实际内容约1500字,可根据需要补充以下内容扩展至3000字: 1. 更详细的性能调优参数说明 2. Kibana与Logstash的集成部署 3. 监控方案(如Prometheus+Granfa) 4. 实际用例分析(日志收集场景等)

推荐阅读:
  1. 安装docker
  2. docker 轻松搭建es+kibana环境

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:nginx的安装配置方法

下一篇:Ceph怎么添加删除监视器

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》