Docker 安裝 Elasticsearch 8.x

Docker 安裝 Elasticsearch 8.x

  • 前言
  • 一、準備工作
  • 二、設置容器的目錄結構
  • 三、啟動一個臨時的容器來復制配置文件
  • 四、復制配置文件到本地目錄
  • 五、刪除臨時容器
  • 六、創建并運行容器,掛載本地目錄
  • 七、修改文件配置監聽端口
  • 八、端口配置:Host 網絡模式 vs Port 映射模式
    • 1. Host 網絡模式
    • 2. Port 映射模式
  • 九、查看日志和檢查容器狀態
  • 十、訪問服務
  • 十一、Elasticsearch 常用操作命令


前言

在現代應用架構中,Elasticsearch 是一款強大的分布式搜索引擎,廣泛應用于日志分析、實時搜索、數據可視化等場景。通過 Docker 部署 Elasticsearch,可以快速搭建、靈活擴展,并與容器化平臺無縫集成。

本文將詳細介紹如何使用 Docker 安裝和配置 Elasticsearch 8.x,包括目錄結構設置、配置文件管理、容器啟動與管理、端口配置、日志查看、服務訪問等內容,幫助你快速搭建一個高效、可維護的 Elasticsearch 環境。

在這里插入圖片描述


一、準備工作

首先,確保你的系統上已經安裝了 Docker。

Linux上進行Docker安裝有兩種方式:

  1. Docker自動化安裝
  2. Docker手動安裝

可以根據該文章的步驟進行安裝:https://blog.csdn.net/weixin_44876263/article/details/136714078?spm=1001.2014.3001.5502

二、設置容器的目錄結構

為了持久化存儲日志、數據、配置和插件,需要在宿主機上創建對應目錄,并賦予 Elasticsearch 容器內部用戶的寫權限。

# 安裝路徑
DIR="/opt/docker/demo"
DOCKER_NAME="docker-elasticsearch"# 創建目錄結構
mkdir -p "$DIR/elasticsearch/logs"
mkdir -p "$DIR/elasticsearch/data"
mkdir -p "$DIR/elasticsearch/config"
mkdir -p "$DIR/elasticsearch/plugins"# 賦予文件權限
chmod -R 777 $DIR/elasticsearch/

三、啟動一個臨時的容器來復制配置文件

啟動一個臨時的 Elasticsearch 容器,用于復制默認配置文件到宿主機。

docker run -d \--restart=always \--name elasticsearch \--network host \-p 9388:9200 \-p 9389:9300 \--privileged \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \docker.elastic.co/elasticsearch/elasticsearch:8.17.0

四、復制配置文件到本地目錄

將容器中的配置文件復制到宿主機的對應目錄。

docker cp elasticsearch:/usr/share/elasticsearch/data $DIR/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/plugins $DIR/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/config $DIR/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/logs $DIR/elasticsearch/

五、刪除臨時容器

docker stop elasticsearch
docker rm elasticsearch

六、創建并運行容器,掛載本地目錄

使用以下命令啟動 Elasticsearch 容器,并掛載本地目錄。

docker run -d \--name "$DOCKER_NAME" \--restart=always \--network host \-v "$DIR/elasticsearch/data:/usr/share/elasticsearch/data" \-v "$DIR/elasticsearch/plugins:/usr/share/elasticsearch/plugins" \-v "$DIR/elasticsearch/config:/usr/share/elasticsearch/config" \-v "$DIR/elasticsearch/logs:/usr/share/elasticsearch/logs" \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \-e "ELASTIC_PASSWORD=123456" \docker.elastic.co/elasticsearch/elasticsearch:8.17.0

七、修改文件配置監聽端口

修改配置文件 $DIR/elasticsearch/config/elasticsearch.yml

cluster.name: "docker-cluster"network.host: 0.0.0.0http.port: 9200

八、端口配置:Host 網絡模式 vs Port 映射模式

1. Host 網絡模式

docker run -d \--restart=always \--name "$DOCKER_NAME" \--network host \-v "$DIR/elasticsearch/data:/usr/share/elasticsearch/data" \-v "$DIR/elasticsearch/plugins:/usr/share/elasticsearch/plugins" \-v "$DIR/elasticsearch/config:/usr/share/elasticsearch/config" \-v "$DIR/elasticsearch/logs:/usr/share/elasticsearch/logs" \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \-e "ELASTIC_PASSWORD=123456" \docker.elastic.co/elasticsearch/elasticsearch:8.17.0
  • 特點

    在 Host 網絡模式下,容器共享宿主機的網絡棧,容器內的網絡接口直接映射到宿主機的網絡接口。?這意味著容器可以使用宿主機的 IP 地址和端口進行通信。?對于 Elasticsearch 來說,使用 Host 網絡模式可以減少網絡延遲,提高性能。

  • 優點

    • 簡化網絡配置,無需額外的 -p 端口映射。

    • 延遲更低,吞吐更高。

  • 缺點

    • 與宿主機完全共享端口,若宿主機已有同端口服務運行,會沖突。

    • 安全隔離較弱,容器網絡直接暴露給宿主機。

2. Port 映射模式

docker run -d \--restart=always \--name "$DOCKER_NAME" \-p 9201:9200 \-p 9301:9300 \-v "$DIR/elasticsearch/data:/usr/share/elasticsearch/data" \-v "$DIR/elasticsearch/plugins:/usr/share/elasticsearch/plugins" \-v "$DIR/elasticsearch/config:/usr/share/elasticsearch/config" \-v "$DIR/elasticsearch/logs:/usr/share/elasticsearch/logs" \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \-e "ELASTIC_PASSWORD=123456" \docker.elastic.co/elasticsearch/elasticsearch:8.17.0
  • 特點

    在 Port 映射模式下,容器使用 Docker 的默認橋接網絡,容器內的端口通過宿主機的端口進行映射。?這種方式適用于需要將容器服務暴露給外部訪問的場景。?例如,將容器的 9200 端口映射到宿主機的 9201 端口。

  • 優點

    • 容器與宿主機網絡隔離,提高安全性。

    • 可以在同一宿主機上運行多個容器,避免端口沖突。

  • 缺點

    • 可能增加網絡延遲,影響性能。

    • 需要手動配置端口映射,增加配置復雜度。

九、查看日志和檢查容器狀態

使用以下命令查看 Elasticsearch 容器的日志:

docker logs -f "$DOCKER_NAME"

要查看容器的狀態,可以使用:

docker ps -a

如果容器未運行,可以使用以下命令啟動:

docker start "$DOCKER_NAME"

十、訪問服務

在瀏覽器中訪問以下地址,檢查 Elasticsearch 是否正常運行
默認的用戶名為:elastic
密碼:123456

http://localhost:9200

如果使用了 Port 映射模式,并將容器的 9200 端口映射到宿主機的 9201 端口,則應訪問:

http://localhost:9201

應該看到類似以下的 JSON 響應:

{"name" : "docker-cluster","cluster_name" : "docker-cluster","cluster_uuid" : "abcdefghijklmno","version" : {"number" : "8.17.0","build_flavor" : "default","build_type" : "deb","build_hash" : "1234567890abcdef","build_date" : "2025-04-15T12:34:56.789Z","build_snapshot" : false,"lucene_version" : "8.10.0","minimum_wire_compatibility_version" : "7.10.0","minimum_index_compatibility_version" : "7.10.0"},"tagline" : "You Know, for Search"
}

在這里插入圖片描述

十一、Elasticsearch 常用操作命令

  1. 檢查集群健康狀態

    使用以下命令檢查 Elasticsearch 集群的健康狀態:

    curl -X GET "localhost:9200/_cluster/health?pretty"
    
  2. 查看所有索引

    使用以下命令檢查 Elasticsearch 集群的健康狀態:

    curl -X GET "localhost:9200/_cat/indices?v"
    
  3. 創建索引

    使用以下命令創建一個新的索引:

    curl -X PUT "localhost:9200/my_index"
    
  4. 刪除索引

    使用以下命令刪除指定的索引:

    curl -X DELETE "localhost:9200/my_index"
    
  5. 查詢索引中的所有文檔

    使用以下命令查詢索引中的所有文檔:

    curl -X GET "localhost:9200/my_index/_search?q=*:*
    
  6. 修改用戶密碼

    Elasticsearch 提供了 elasticsearch-reset-password 工具,用于重置用戶密碼。?例如,重置 elastic 用戶的密碼:

    docker exec -it elasticsearch bin/elasticsearch-reset-password -u elastic
    

    執行后,系統將提示輸入新密碼并確認。?請確保在生產環境中妥善保管密碼。

  7. 查看集群節點信息

    curl -X GET "localhost:9200/_cat/nodes?v"
    
  8. 查看集群分片分配情況

    curl -X GET "localhost:9200/_cat/shards?v"
    
  9. 查看集群所有分配情況

    curl -X GET "localhost:9200/_cat/allocation?v"
    
  10. 查看索引文檔數量

    curl -X GET "localhost:9200/my_index/_count"
    

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

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

相關文章

C#: 用Libreoffice實現Word文件轉PDF

現實場景中要實現Word格式轉PDF格式還是比較常見的。 如果要用開源的組件,只有用Libreoffice了。 一、下載安裝Libreoffice 先進入如下鏈接,找到最新版本和匹配的操作系統來安裝。 官網試過,下載是能下載,但安裝了用不了&…

MoogDB數據庫日常維護技巧與常見問題解析

在當今的數據驅動世界中,數據庫作為信息存儲與管理的核心組件,扮演著舉足輕重的角色。MoogDB作為一款高性能、易擴展的數據庫解決方案,越來越受到開發者和企業的青睞。為了確保MoogDB的穩定性與高性能,定期的日常維護及對常見問題…

JAVA多線程的幾種實現方式

?1. 繼承 Thread 類? ?原理?:通過繼承 Thread 類并重寫 run() 方法定義線程任務,調用 start() 啟動線程?。?代碼示例?: public class MyThread extends Thread {Overridepublic void run() {System.out.println("線程 " g…

爬蟲(基本知識介紹,urllib庫的說明)

爬蟲 爬蟲基礎(一些基本原理的梳理) scheme://[username:password]hostname[:port][/path][;parameters][?query][#fragment] 注: parameters 和 query 混用,并且現在 query 用的多 ?query 查詢 ,用來查詢某類資源…

探秘串口服務器廠家:背后的故事與應用

在科技飛速發展的今天,串口服務器作為連接串口設備與網絡的橋梁,在工業自動化、智能交通、智能家居等眾多領域發揮著關鍵作用。你是否好奇,那些生產串口服務器的廠家究竟有著怎樣的故事?它們的產品背后又蘊含著怎樣的原理呢&#…

工廠能耗系統智能化解決方案 —— 安科瑞企業能源管控平臺

安科瑞顧強 政策背景與“雙碳”戰略驅動 2025年《政府工作報告》明確提出“單位國內生產總值能耗降低3%左右”的目標,要求通過產業結構升級(如高耗能行業技術革新或轉型)、能源結構優化(提高非化石能源占比)及數字化…

BI面向模型開發和面向報表開發,有什么區別?

在數字化時代,商業智能(BI)已成為企業決策不可或缺的工具。BI項目實施時,通常有兩種開發模式:面向模型開發和面向報表開發。雖然兩者都旨在通過數據驅動決策,但在開發邏輯、目標價值和技術路徑上存在顯著差…

OpenHarmony人才認證證書

OpenHarmony人才認證體系目前支持初級工程師認證,要求了解OpenHarmony開源項目、生態進展及系統移植等基礎知識,熟練掌握OpenHarmony的ArkUI、分布式軟總線、分布式硬件、分布式數據管理等基礎能力使用,具備基礎的開發能力。 考試流程可參考O…

映射網絡路路徑和ftp路徑原理是什么,如何使用,有什么區別

文章目錄 一、原理1. 映射網絡路徑2. FTP路徑 二、使用方法1. 映射網絡路徑2. FTP路徑 三、主要區別1. 協議與功能2. 安全性與權限3. 適用場景 四、如何選擇?五、注意事項 映射網絡路徑(如SMB/CIFS或NFS)和FTP路徑(FTP/FTPS/SFTP&…

Windows 圖形顯示驅動開發-WDDM 1.2功能—Windows 8 中的 DirectX 功能改進(一)

Windows 8包括 Microsoft DirectX 功能改進,使開發人員、最終用戶和系統制造商受益。 功能改進在以下幾個方面: 像素格式 (5551、565、4444) :在低功耗硬件配置下,DirectX 應用程序的性能更高。雙精度著色器功能:高級…

GitHub 趨勢日報 (2025年04月15日)

本日報由 TrendForge 系統生成 https://trendforge.devlive.org/ 📈 今日整體趨勢 Top 10 排名項目名稱項目描述今日獲星總星數語言1yeongpin/cursor-free-vip[Support 0.48.x](Reset Cursor AI MachineID & Auto Sign Up / In & Bypass Higher…

2025年推薦使用的開源大語言模型top20:核心特性、選擇指標和開源優勢

李升偉 編譯 隨著人工智能技術的持續發展,開源大型語言模型(LLMs)正變得愈發強大,使最先進的AI能力得以普及。到2025年,開源生態系統中涌現出多個關鍵模型,它們在各類應用場景中展現出獨特優勢。 大型語言…

回收鍍錫廢水的必要性(筆記)

鍍錫廢水若直接排放,將對環境、經濟和社會造成多重危害,其回收處理具有迫切性和深遠意義。以下從環境、資源、法規、技術與實踐、可持續發展五大維度展開分析: 一、環境危害的緊迫性:重金屬與污染物的致命威脅 成分復雜&#xf…

14.2 - VDMA彩條顯示實驗之動態時鐘

文章目錄 1 實驗任務2 系統框圖3 硬件設計4 軟件設計4.1 dynclk_api.h文件4.2 math_compat.h文件4.3 dynclk_api.c文件4.4 main.c文件 1 實驗任務 參見14.1。 2 系統框圖 參見14.1。 3 硬件設計 注意事項:基于14.1做如下改動 使能Clocking Wizard IP核的Dynam…

在邊緣端進行tensorflow模型的部署(小白初探)

1.配置tensorflow的環境 (我是安裝GPU版本的) 建議參考這個博主的文章,確實非常快速! 十分鐘安裝Tensorflow-gpu2.6.0本機CUDA12 以及numpymatplotlib各包版本協調問題_tensorflow cuda12-CSDN博客 2.學習自制數據集 &#xf…

windows下使用nginx + waitress 部署django

架構介紹 linux一般采用nginx uwsgi部署django,在Windows下,可以取代uwsgi的選項包括Waitressa、Daphnea、Hypercoma和Gunicorna(通過WSLa 運行)。windows服務器一般采用nginx waitress 部署django,,他們的關系如下 django是WEB應用…

利用pnpm patch命令實現依賴包熱更新:精準打補丁指南

需求場景 在Element Plus的el-table組件二次開發中,需新增列顯示/隱藏控件功能。直接修改node_modules源碼存在兩大痛點: 團隊協作時修改無法同步 依賴更新導致自定義代碼丟失 解決方案選型 通過patch-package工具實現: 📦 非…

ThinkPad T520 無法讀到硬盤 問題排查思路

錯誤提示:2100:detection error on hdd0(Main hdd) 1、判斷錯誤提示含義 表示電腦在啟動時無法檢測到主硬盤(HDD0)。 2、 常見原因: 硬盤松動或接觸不良 → 特別是筆記本在移動或震動后,硬盤排線松了。 硬盤損壞 →…

Doris部署生產集群最低要求的部署方案

Doris生產集群最低部署方案(2025年4月版) 一、節點規劃與數量 1. FE節點(Frontend) 數量:至少 3個節點(1個Follower 2個 Observer),確保高可用(HA)。角色分…

游戲引擎學習第227天

今天的計劃 今天的工作重點是進行吸引模式(attract mode)的開發,主要是處理游戲的進出和其他一些小的細節問題,這些是之前想要整理和清理的部分。我做了一些工作,將游戲代碼中的不同部分分離到邏輯上獨立的區域&#…