ElasticSearch 部署ES(docker)

部署ElastSearch(Docker)

[Step 1] : 拉取 ElasticSearch 镜像

docker pull elasticsearch:7.14.0




[Step 2] : 创建网络➡️创建目录➡️启动容器➡️拷贝文件➡️授权文件➡️删除容器

# 创建网络
docker network create elastic

# 创建目录
mkdir -p /data/elasticsearch/{config,data,logs,plugins}

# 启动容器
docker run --name elasticsearch --restart=always \
-p 9200:9200 -p 9300:9300 \
--privileged --network elastic \
-e "discovery.type=single-node" \
-d elasticsearch:7.14.0

# 拷贝文件
docker cp -a elasticsearch:/usr/share/elasticsearch/config/ /data/elasticsearch
docker cp -a elasticsearch:/usr/share/elasticsearch/data/ /data/elasticsearch
docker cp -a elasticsearch:/usr/share/elasticsearch/logs/ /data/elasticsearch
docker cp -a elasticsearch:/usr/share/elasticsearch/plugins/ /data/elasticsearch

# 授权文件
chmod -R 777 /data/elasticsearch/{config,data,logs,plugins}

# 删除容器
docker rm -f elasticsearch



[Step 3] : 启动 ElasticSearch 容器

docker run --name elasticsearch --restart=always \
-p 9200:9200 -p 9300:9300 \
--privileged=true --network elastic \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
-e "discovery.type=single-node" \
-e KEYSTORE_USERNAME=elastic \
-e KEYSTORE_PASSWORD=elastic \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /data/elasticsearch/config:/usr/share/elasticsearch/config \
-d elasticsearch:7.14.0

相关参数解释 :

  1. --name elasticsearch: 给这个容器起名为 elasticsearch,方便管理和识别。
  2. --restart=always: 设置容器的重启策略。当容器意外停止时,它将自动重启。
  3. -p 9200:9200 -p 9300:9300: 端口映射, 9200 端口用于 HTTP 访问, 9300 端口用于节点间的内部通信
  4. --privileged=true: 以特权模式运行容器,这赋予容器更多的系统权限,类似于主机上的 root 权限。
  5. --network elastic: 将容器加入名为 elastic 的 Docker 网络中,这可以方便容器之间的通信。
  6. -e ES_JAVA_OPTS="-Xms256m -Xmx512m": 用于配置 JVM 的最大最小堆内存。
  7. -e "discovery.type=single-node": 设置 Elasticsearch 为单节点模式
  8. -e KEYSTORE_USERNAME=elastic-e KEYSTORE_PASSWORD=elastic: 设置 Elasticsearch 的认证用户名和密码为 elastic,这些变量将用于存储在密钥库中的凭据。
  9. -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins: 插件持久化
  10. -v /data/elasticsearch/data:/usr/share/elasticsearch/data: 数据持久化
  11. -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs: 日志持久化
  12. -v /data/elasticsearch/config:/usr/share/elasticsearch/config: 配置持久化
  13. -d: 以后台模式(守护进程模式)运行容器。
  14. elasticsearch:7.14.0: 指定使用 elasticsearch:7.14.0 镜像启动容器。


[Step 4] : 访问 ElasticSearch 服务

# IP地址改成自己的
http://172.29.32.233:9200/




部署 Kibana ( Docker )

[Step 1] : 拉取 Kibana 镜像

docker pull kibana:7.14.0



[Step 2] : 创建目录 ➡️ 启动容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器

# 创建目录
mkdir -p /data/kibana/{conf,plugins}

# 启动容器
docker run --name kibana --restart=always \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e "I18N_LOCALE=zh-CN" \
-p 5601:5601 --network=elastic \
-d kibana:7.14.0

# 拷贝文件
docker cp kibana:/usr/share/kibana/config/kibana.yml /data/kibana/conf/

# 授权文件
chmod -R 777 /data/kibana/conf/kibana.yml /data/kibana/plugins

# 删除容器
docker rm -f kibana



[Step 3] : 启动 Kibana 容器

docker run --name kibana --restart=always \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e "I18N_LOCALE=zh-CN" \
-p 5601:5601 --network=elastic \
-v /data/kibana/plugins:/usr/share/kibana/plugins \
-v /data/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml \
-d kibana:7.14.0

相关参数解释 :

  1. docker run : 这是用来启动一个新的 Docker 容器的命令。
  2. --name kibana : 通过给容器指定一个名称,可以更方便地管理和操作容器。
  3. --restart=always : 无论容器因为什么原因停止,Docker 守护进程都会自动尝试重新启动它
  4. -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 : 告诉 Kibana 连接到名为 elasticsearch 的 Elasticsearch 服务,地址为 http://elasticsearch:9200
  5. -e "I18N_LOCALE=zh-CN" : 将 Kibana 的界面语言设置为简体中文(zh-CN)。
  6. -p 5601:5601 : 将宿主机的 5601 端口映射到容器的 5601 端口。
  7. --network=elastic : 将容器连接到名为 elastic 的 Docker 网络。这使得 Kibana 可以通过 Docker 网络与 elasticsearch 容器通信,而不需要通过宿主机网络。
  8. -v /data/kibana/plugins:/usr/share/kibana/plugins : 插件持久化
  9. -v /data/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml : 配置持久化
  10. -d kibana:7.14.0以守护进程模式运行容器(后台运行),并指定使用 kibana:7.14.0 镜像



[Step 4] : 访问 Kibana 控制台

# 换成自己的IP地址
http://172.29.32.233:5601/

### 使用Docker部署Elasticsearch教程 #### 准备工作 为了确保顺利部署,需确认已安装并配置好Docker环境。对于特定版本的需求,如7.17.5版本的Elasticsearch及其组件,可通过指定标签拉取相应镜像[^1]。 #### 下载所需镜像 针对所需的Elasticsearch、Kibana以及IK分词器,均选择相同的大版本号以保障最佳兼容性。执行如下命令来获取官方提供的Docker镜像: ```bash docker pull elasticsearch:7.17.5 docker pull kibana:7.17.5 ``` 上述操作会从Docker Hub下载对应版本的软件包到本地机器上,以便后续创建容器实例时使用。 #### 启动单节点Elasticsearch服务 利用之前下载好的镜像文件,可以通过简单的`docker run`指令快速启动一个独立运作的服务端口映射至主机8080端口为例展示基本语法结构: ```bash docker run -d --name es-node \ -e "discovery.type=single-node" \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.17.5 ``` 此段脚本定义了一个名为`es-node`的新后台进程,并设置了必要的环境变量使得该节点作为单一模式运行;同时开放了两个网络接口供外部访问API请求及内部通信之用。 #### 运行Kibana可视化工具并与Elasticsearch连接 同样基于先前准备完毕的基础之上,继续添加另一个辅助性的前端界面——Kibana用于监控管理集群状态等高级功能特性。下面给出了一套完整的参数设置方案实现两者之间的无缝对接交互体验: ```bash docker run -d --name kb-server \ -e ELASTICSEARCH_HOSTS=http://<your-es-ip>:9200 \ -p 5601:5601 \ kibana:7.17.5 ``` 请注意替换其中占位符部分为实际存在的IP地址或者域名信息指向已经成功搭建完成后的搜索引擎位置。 #### 数据持久化处理建议 考虑到长期稳定性和灾难恢复能力,在生产级别应用场合下推荐采用挂载卷的方式保存重要资料防止意外丢失风险发生。例如修改之前的启动语句加入额外选项即可达成目的: ```bash docker run -d --name es-persistent \ -v /path/to/data:/usr/share/elasticsearch/data \ ... ``` 此处省略部分内容保持原有逻辑不变仅增加体积绑定路径从而达到预期效果[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值