溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker怎么安裝es

發布時間:2021-08-16 20:20:15 來源:億速云 閱讀:260 作者:chen 欄目:大數據
# 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. 性能優化建議

  • 內存分配:通過 ES_JAVA_OPTS 調整堆大小。
  • 禁用交換分區
    
    -e "bootstrap.memory_lock=true" \
    --ulimit memlock=-1:-1
    

八、通過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. 實際用例分析(日志收集場景等)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女