Docker 安裝 Elasticsearch 教程

目錄

一、安裝 Elasticsearch

二、安裝 Kibana

三、安裝 IK 分詞器

四、Elasticsearch 常用配置

五、Elasticsearch 常用命令


一、安裝 Elasticsearch

(一)創建 Docker 網絡

因為后續還需要部署 Kibana 容器,所以需要讓 Elasticsearch 和 Kibana 容器互聯。創建一個 Docker 網絡:

docker network create es-net

(二)拉取 Elasticsearch 鏡像

以安裝 Elasticsearch 8.6.0 版本為例,執行以下命令拉取鏡像:

docker pull elasticsearch:8.6.0

(三)創建掛載點目錄

創建用于掛載數據、配置和插件的目錄,并設置權限:

mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins
chmod 777 /usr/local/es/data
chmod 777 /usr/local/es/config
chmod 777 /usr/local/es/plugins

(四)部署單點 Elasticsearch 容器

運行以下命令啟動 Elasticsearch 容器:

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0

(五)關閉安全驗證(可選)

進入 Elasticsearch 容器,關閉安全驗證功能:

docker exec -it es /bin/bash
cd config
echo 'xpack.security.enabled: false' >> elasticsearch.yml

(六)重啟 Elasticsearch 容器

退出容器后,重啟容器以使配置生效:

docker restart es

(七)測試 Elasticsearch 是否安裝成功

訪問 http://<服務器IP>:9200,如果返回類似以下內容,說明安裝成功:

{"name" : "es","cluster_name" : "docker-cluster","cluster_uuid" : "xxxxxx","version" : {"number" : "8.6.0","build_flavor" : "default","build_type" : "docker","build_hash" : "xxxxxx","build_date" : "xxxxxx","build_snapshot" : false,"lucene_version" : "xxxxxx","minimum_wire_compatibility_version" : "xxxxxx","minimum_index_compatibility_version" : "xxxxxx"},"tagline" : "You Know, for Search"
}

二、安裝 Kibana

(一)拉取 Kibana 鏡像

拉取與 Elasticsearch 版本匹配的 Kibana 鏡像:

docker pull kibana:8.6.0

(二)創建掛載點目錄

創建用于掛載 Kibana 數據和配置的目錄,并設置權限:

mkdir -p /usr/local/kibana/config /usr/local/kibana/data
chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config

(三)部署 Kibana 容器

運行以下命令啟動 Kibana 容器:

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0

(四)測試 Kibana 是否安裝成功

訪問 http://<服務器IP>:5601,如果能夠正常訪問 Kibana 的 Web 界面,說明安裝成功。


三、安裝 IK 分詞器

(一)進入 Elasticsearch 容器

docker exec -it es /bin/bash

(二)安裝 IK 分詞器

在容器內執行以下命令安裝 IK 分詞器:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.6.0/elasticsearch-analysis-ik-8.6.0.zip

(三)重啟 Elasticsearch 容器

退出容器后,重啟 Elasticsearch 容器以使插件生效:

docker restart es

四、Elasticsearch 常用配置

(一)修改 Elasticsearch 配置文件

進入容器的配置目錄,編輯 elasticsearch.yml 文件:

docker exec -it es /bin/bash
cd config
vim elasticsearch.yml

常見的配置項包括:

  • cluster.name:設置集群名稱

  • node.name:設置節點名稱

  • path.data:設置數據存儲路徑

  • path.logs:設置日志存儲路徑

  • network.host:設置綁定的網絡接口

  • http.port:設置 HTTP 服務端口

(二)設置 JVM 堆大小

通過環境變量 ES_JAVA_OPTS 設置 JVM 堆大小,例如:

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
elasticsearch:8.6.0

五、Elasticsearch 常用命令

(一)索引操作

  • 創建索引

    curl -X PUT "http://<服務器IP>:9200/my_index" -H 'Content-Type: application/json' -d'
    {"settings": {"number_of_shards": 3,"number_of_replicas": 2}
    }
    '
  • 刪除索引

    curl -X DELETE "http://<服務器IP>:9200/my_index"
  • 查看索引

    curl -X GET "http://<服務器IP>:9200/_cat/indices?v"

(二)文檔操作

  • 添加文檔

    curl -X POST "http://<服務器IP>:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
    {"field1": "value1","field2": "value2"
    }
    '
  • 查詢文檔

    curl -X GET "http://<服務器IP>:9200/my_index/_doc/1"
  • 更新文檔

    curl -X POST "http://<服務器IP>:9200/my_index/_doc/1/_update" -H 'Content-Type: application/json' -d'
    {"doc": {"field1": "new_value1"}
    }
    '
  • 刪除文檔

    curl -X DELETE "http://<服務器IP>:9200/my_index/_doc/1"

(三)集群狀態查詢

curl -X GET "http://<服務器IP>:9200/_cluster/health?pretty"

六、總結

通過以上步驟,你可以在 Docker 上成功安裝 Elasticsearch,并配置常用的網絡、數據掛載和插件安裝。掌握這些常用命令,可以幫助你更高效地管理和使用 Elasticsearch 集群。如果在使用過程中遇到任何問題,可以參考 Elasticsearch 官方文檔 或社區尋求幫助。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74692.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Swagger @ApiOperation

ApiOperation 注解并非 Spring Boot 自帶的注解&#xff0c;而是來自 Swagger 框架&#xff0c;Swagger 是一個規范且完整的框架&#xff0c;用于生成、描述、調用和可視化 RESTful 風格的 Web 服務&#xff0c;而 ApiOperation 主要用于為 API 接口的操作添加描述信息。以下為…

【奇點時刻】GPT4o新圖像生成模型底層原理深度洞察報告(篇2)

由于上一篇解析深度不足&#xff0c;經過查看學習相關論文&#xff0c;以下是一份對 GPT-4o 最新的圖像生成模型 的深度梳理與洞察&#xff0c;從模型原理到社區解讀、對比傳統擴散模型&#xff0c;再到對未來趨勢的分析。為了便于閱讀&#xff0c;整理成以下七個部分&#xff…

C# 窗體應用(.FET Framework ) 打開文件操作

一、 打開文件或文件夾加載數據 1. 定義一個列表用來接收路徑 public List<string> paths new List<string>();2. 打開文件選擇一個文件并將文件放入列表中 OpenFileDialog open new OpenFileDialog(); // 過濾 open.Filter "(*.jpg;*.jpge;*.bmp;*.png…

Scala 面向對象編程總結

???抽象屬性和抽象方法 基本語法 定義抽象類&#xff1a;abstract class Person{} //通過 abstract 關鍵字標記抽象類定義抽象屬性&#xff1a;val|var name:String //一個屬性沒有初始化&#xff0c;就是抽象屬性定義抽象方法&#xff1a;def hello():String //只聲明而沒…

人工智能賦能工業制造:智能制造的未來之路

一、引言 隨著人工智能技術的飛速發展&#xff0c;其應用場景不斷拓展&#xff0c;從消費電子到醫療健康&#xff0c;從金融科技到交通運輸&#xff0c;幾乎涵蓋了所有行業。而工業制造作為國民經濟的支柱產業&#xff0c;也在人工智能的浪潮中迎來了深刻的變革。智能制造&…

元宇宙概念下,UI 設計如何打造沉浸式體驗?

一、元宇宙時代UI設計的核心趨勢 在元宇宙概念下&#xff0c;UI設計的核心目標是打造沉浸式體驗&#xff0c;讓用戶在虛擬世界中感受到身臨其境的交互效果。以下是元宇宙時代UI設計的幾個核心趨勢&#xff1a; 沉浸式體驗設計 元宇宙的核心是提供沉浸式體驗&#xff0c;UI設計…

AI 如何幫助我們提升自己,不被替代

在當今快速發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;正逐漸滲透到生活的方方面面。許多人擔心 AI 會取代人類的工作&#xff0c;然而&#xff0c;AI 更多的是作為一種強大的賦能工具&#xff0c;幫助我們提升自身能力&#xff0c;讓我們在工作中更具競爭力。以…

基于SpringBoot+Vue實現的二手交易市場平臺功能一

一、前言介紹&#xff1a; 1.1 項目摘要 隨著社會的發展和人們生活水平的提高&#xff0c;消費者購買能力的提升導致產生了大量的閑置物品&#xff0c;這些閑置物品具有一定的經濟價值。特別是在高校環境中&#xff0c;學生群體作為一個具有一定消費水平的群體&#xff0c;每…

k8s安裝cri驅動創建storageclass動態類

部署nfs服務器 #所有k8s節點安裝nfs客戶端 yum install -y nfs-utils mkdir -p /nfs/share echo "/nfs/share *(rw,sync,no_root_squash)" >> /etc/exports systemctl enable --now nfs-serverhelm部署nfs的provisioner&sc 所有k8s節點安裝客戶端 yu…

SpringBoot + Netty + Vue + WebSocket實現在線聊天

最近想學學WebSocket做一個實時通訊的練手項目 主要用到的技術棧是WebSocket Netty Vue Pinia MySQL SpringBoot&#xff0c;實現一個持久化數據&#xff0c;單一群聊&#xff0c;支持多用戶的聊天界面 下面是實現的過程 后端 SpringBoot啟動的時候會占用一個端口&#xff…

大數據Spark(五十七):Spark運行架構與MapReduce區別

文章目錄 Spark運行架構與MapReduce區別 一、Spark運行架構 二、Spark與MapReduce區別 Spark運行架構與MapReduce區別 一、Spark運行架構 Master:Spark集群中資源管理主節點&#xff0c;負責管理Worker節點。Worker:Spark集群中資源管理的從節點&#xff0c;負責任務的運行…

【爬蟲】網頁抓包工具--Fiddler

網頁抓包工具對比&#xff1a;Fiddler與Sniff Master Fiddler基礎知識 Fiddler是一款強大的抓包工具&#xff0c;它的工作原理是作為web代理服務器運行&#xff0c;默認代理地址是127.0.0.1&#xff0c;端口8888。代理服務器位于客戶端和服務器之間&#xff0c;攔截所有HTTP/…

Redis:集群

為什么要有集群&#xff1f; Redis 集群&#xff08;Redis Cluster&#xff09;是 Redis 官方提供的分布式解決方案&#xff0c;用于解決單機 Redis 在數據容量、并發處理能力和高可用性上的局限。通過 Redis 集群&#xff0c;可以實現數據分片、故障轉移和高可用性&#xff0…

【2012】【論文筆記】太赫茲波在非磁化等離子體——

前言 類型 太赫茲 + 等離子體 太赫茲 + 等離子體 太赫茲+等離子體 期刊 物理學報 物理學報 物理學報 作者

Linux字符驅動設備開發入門之框架搭建

聲明 本博客所記錄的關于正點原子i.MX6ULL開發板的學習筆記&#xff0c;&#xff08;內容參照正點原子I.MX6U嵌入式linux驅動開發指南&#xff0c;可在正點原子官方獲取正點原子Linux開發板 — 正點原子資料下載中心 1.0.0 文檔&#xff09;&#xff0c;旨在如實記錄我在學校學…

小剛說C語言刷題——第15講 多分支結構

1.多分支結構 所謂多分支結構是指在選擇的時候有多種選擇。根據條件滿足哪個分支&#xff0c;就走對應分支的語句。 2.語法格式 if(條件1) 語句1; else if(條件2) 語句2; else if(條件3) 語句3; ....... else 語句n; 3.示例代碼 從鍵盤輸入三條邊的長度&#xff0c;…

Apache httpclient okhttp(1)

學習鏈接 Apache httpclient & okhttp&#xff08;1&#xff09; Apache httpclient & okhttp&#xff08;2&#xff09; httpcomponents-client github apache httpclient文檔 apache httpclient文檔詳細使用 log4j日志官方文檔 【Java基礎】- HttpURLConnection…

洛谷題單3-P1420 最長連號-python-流程圖重構

題目描述 輸入長度為 n n n 的一個正整數序列&#xff0c;要求輸出序列中最長連號的長度。 連號指在序列中&#xff0c;從小到大的連續自然數。 輸入格式 第一行&#xff0c;一個整數 n n n。 第二行&#xff0c; n n n 個整數 a i a_i ai?&#xff0c;之間用空格隔開…

使用binance-connector庫獲取Binance全市場的幣種價格,然后選擇一個幣種進行下單

一個完整的示例,展示如何使用 api 獲取Binance全市場的幣種價格,然后選擇一個最便宜的幣種進行下單操作 代碼經過修改,親測可用,目前只可用于現貨,合約的待開發 獲取市場價格:使用client.ticker_price()獲取所有交易對的當前價格 賬戶檢查:獲取賬戶余額,確保有足夠的資…

算法設計學習10

實驗目的及要求&#xff1a; 本查找實驗旨在使學生深入了解不同查找算法的原理、性能特征和適用場景&#xff0c;培養其在實際問題中選擇和應用查找算法的能力。通過實驗&#xff0c;學生將具體實現多種查找算法&#xff0c;并通過性能測試驗證其在不同數據集上的表現&#xff…