使用docker安装部署elasticsearch,并持久化到容器卷

这篇具有很好参考价值的文章主要介绍了使用docker安装部署elasticsearch,并持久化到容器卷。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用docker安装部署elasticsearch,并持久化到容器卷

1.拉取Elasticsearch Docker镜像

在终端中执行以下命令来从Docker Hub拉取特定版本(如8.2.0)的Elasticsearch镜像。请确保你的网络连接正常,并且Docker已经在你的机器上安装并正确配置。

# 从Docker Hub拉取版本为8.2.0的Elasticsearch镜像
docker pull elasticsearch:8.2.0
# 查看镜像列表
docker images

用docker部署es单节点,并实现持久化,docker,elasticsearch,容器

2.创建挂载目录

执行以下命令在本地创建文件夹,用于持久化 Elasticsearch 的数据和配置。

# 创建用于数据持久化的文件夹
mkdir -p /mydata/es/data 

# 创建用于存储 Elasticsearch 插件的文件夹
mkdir -p /mydata/es/plugins

# 创建用于存储 Elasticsearch 日志的文件夹
mkdir -p /mydata/es/logs

# 创建用于存储 Elasticsearch 配置的文件夹
mkdir -p /mydata/es/config

如果上述文件夹创建成功,但在运行时遇到权限问题,请尝试使用sudo或者更改这些文件夹的权限。

3.创建并运行 Elasticsearch 容器

# 创建并运行一个名为 "es1" 的Elasticsearch容器
docker run -d --name es1  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m"   -e "discovery.type=single-node" --privileged  -p 9200:9200 -p 9300:9300 elasticsearch:8.2.0

如果命令执行成功,它将返回一个容器 ID。否则,它可能会抛出一个错误消息。确保你的Docker具有运行新容器所需的资源和权限

4.开启防火墙端口

在 CentOS 7.4 或其他使用 firewalld 进程管理的系统上,可以使用以下命令开启防火墙端口9200和9300:
ps:云服务器需要放开对应的安全组

# 开启防火墙端口9200
firewall-cmd --zone=public --add-port=9200/tcp --permanent

# 开启防火墙端口9300
firewall-cmd --zone=public --add-port=9300/tcp --permanent

# 重新加载防火墙配置使更改生效
firewall-cmd --reload

这些命令需要以 root 用户或带有适当权限的用户执行,并确保 firewalld 服务正在运行。如果返回 “success”,则说明操作成功。如果失败,可能需要检查你的 firewalld 进程状态或命令的语法是否正确。

访问服务器Ip:9200端口

用docker部署es单节点,并实现持久化,docker,elasticsearch,容器

5.配置数据和配置的持久化

在这一步中,我们将从运行的 Elasticsearch 容器中复制数据到本地已创建的文件夹中以实现持久化,然后删除原有容器,并利用本地持久化数据创建新的容器。

# 复制 Elasticsearch 容器的相关数据到本地持久化的文件夹
docker cp es1:/usr/share/elasticsearch/data/ /mydata/es/
docker cp es1:/usr/share/elasticsearch/plugins/ /mydata/es/
docker cp es1:/usr/share/elasticsearch/logs/ /mydata/es/
docker cp es1:/usr/share/elasticsearch/config/ /mydata/es/

# 删除原 Elasticsearch 容器
docker rm -f es1

# 利用本地持久化数据和配置创建新的 Elasticsearch 容器
docker run -d --name es  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node"  -v /mydata/es/data:/usr/share/elasticsearch/data  -v /mydata/es/plugins:/usr/share/elasticsearch/plugins -v /mydata/es/config:/usr/share/elasticsearch/config  -v /mydata/es/logs:/usr/share/elasticsearch/logs --privileged  -p 9200:9200 -p 9300:9300 elasticsearch:8.2.0

访问服务器Ip:9200端口

用docker部署es单节点,并实现持久化,docker,elasticsearch,容器

6.配置IK分词器

1.你可以从IK分词器的官方Github仓库上下载与当前版本相同的分词器,然后解压上传到/mydata/es/plugins文件夹中,最后重启Elasticsearch容器。
ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/
2.使用命令,进入docker 容器内直接下载

#进入es容器 -u root 以root用户进入,防止执行命令命令权限不足
docker exec -it -u root es /bin/bash
#安装ik分词器插件
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.0/elasticsearch-analysis-ik-8.2.0.zip

最后都要重启容器,加载分词器插件

# 重启Elasticsearch容器以应用新配置
docker restart es

7.容易出现问题

1):访问服务器Ip:9200端口 访问不到,但是端口也都开放了,云服务器防火墙也开放了

原因可能是

config下es配置文件elasticsearch.yml,中设置为

xpack.security.http.ssl:
  enabled: true

这个用于设置HTTP API客户端连接的SSL/TLS加密。enabled: false,表示启用HTTP API的SSL/TLS加密。

也就是需要https访问 解决方式xpack.security.http.ssl.enabled: false关闭ssl加密

xpack.security.http.ssl:
  enabled: false

2):访问服务器Ip:9200端口可以访问但是需要输入密码,解决方式

方法1.关闭xpack

xpack.security.enabled: false

方法2.使用密码登录

#进入es容器
docker exec -it es /bin/bash
#生成用户elastic密码
elasticsearch-reset-password -u elastic

new value:后就是用户elastic的密码
用docker部署es单节点,并实现持久化,docker,elasticsearch,容器

#es修改密码
./bin/elasticsearch-reset-password --username elastic -i

用docker部署es单节点,并实现持久化,docker,elasticsearch,容器文章来源地址https://www.toymoban.com/news/detail-844487.html

到了这里,关于使用docker安装部署elasticsearch,并持久化到容器卷的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker安装mysql&&使用Navicat远程连接mysql容器&&mysql容器的持久化测试

    文章主人公:帅哥BUG😎  文章路人: 路人 🤨  路人 😛 目录 一.安装mysql并配置文件 1.下载相关镜像 2.在宿主机中创建相关目录,用于挂载容器的相关数据 3.conf目录 4.data目录(创建mysql5.7容器) 二.使用Navicat远程连接mysql容器 1.ip addr 获取ip 2.点击连接选择MySql 3.输入ip,密码

    2024年02月03日
    浏览(48)
  • docker (六)-进阶篇-数据持久化最佳实践MySQL部署

    容器的数据挂载通常指的是将宿主机(虚拟机或物理机)上的目录或文件挂载到容器内部 详情参考docker官网文档 查询官网,MySQL必须要设置超级用户密码的环境变量 说明:上面的 -v 用于将项目数据目录、日志目录、配置文件目录映射到宿主机, --restart=always 表示重启  doc

    2024年02月20日
    浏览(47)
  • docker安装redis并持久化数据

    这里是没有任何的密码 密码是刚才设置的Maqiang

    2024年02月11日
    浏览(44)
  • yapi容器化docker部署以及mongodb容器的持久化挂载异常问题

    通过docker形式部署yapi,需要准备一个mongodb,然后直接在一个空文件夹里写好Dockerfile,其中通过wget下载yapi的zip包。 基本按照这篇文章:https://www.modb.pro/db/149666 来处理即可 把mongodb的docker 跑起来, --auth 表示需要密码才能访问 注意 原文中启动mongo的容器是这样的 首先创建Mon

    2024年02月14日
    浏览(51)
  • (十五)docker安装sentinel,客户端配置规则本地持久化

    操作系统: Linux  CentOS 7.3 64位 docker版本: 19.03.8 sentinel版本: 1.8.0 1、拉取镜像   2、运行容器   3.访问sentinel http://192.168.121.132:8858/ 账号密码默认都是sentinel ​ sentinel配置的规则默认是存在内存里的,不够稳定,所以我们需要持久化到本地文件中。 1.新建持久化处理类 在我

    2024年02月08日
    浏览(48)
  • Mac M系列芯片(M1/M2)Docker安装MySQL并持久化数据与配置

    本文基于MySQL5.7.42进行说明 DockerHub镜像仓库-mysql镜像 常规命令(不适用),提示 no matching manifest for linux/arm64/v8 in the manifest list entries  到DockerHub查看MySQL5.7.42的镜像,可以看到确实没有 linux/arm64/v8 版本的镜像  因此我们要另辟蹊径,加入指定架构的参数进行拉取 --platform li

    2024年02月04日
    浏览(61)
  • Docker Desktop使用宿主机Windows的配置文件持久化存储数据

    《微软官网Windows 上的 Docker 引擎帮助文档》 以Nginx为例 把Nginx的配置文件复制到Windows 注意:Windows的盘符是小写的,以及目录直接是用反斜杠的!(我掉这坑里好久!!!) 修改宿主机的nginx.conf配置文件 删除nginx容器 重启启动一个新的Nginx容器 访问localhost

    2024年02月09日
    浏览(52)
  • Centos 7 通过Docker 安装MySQL 8.0.33实现数据持久化及my.cnf配置

    要在 CentOS 7 上使用 Docker 启动 MySQL 8.0.33,并配置 MySQL 的 my.cnf 文件,同时实现 MySQL 数据的持久化,可以按照以下步骤进行操作: 1、安装 Docker:确保你在 CentOS 7 上已经安装了 Docker。如果尚未安装,请按照 Docker 官方文档提供的说明进行安装。 2、创建持久化存储目录:为了

    2024年02月10日
    浏览(43)
  • Docker 持久化

    为了能够保存(持久化)数据以及共享容器间的数据, Docker 提出了 Volume 的概念。简单来说, Volume 就是目录或者文件,它可以 绕过 默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。 数据卷方式: 数据卷是一个特殊的文件或者目录,它将宿主机文件或

    2024年02月03日
    浏览(46)
  • Docker数据持久化

    在容器层的 UnionFS(联合文件系统)中对文件/目录的任何修改,无论是手工修改还是 容器在运行过程中的修改,在该容器丢失或被删除后这些修改将全部丢失。即这些修改是无 法保存下来的。若要保存下来这些修改,通常有两种方式: 定制镜像持久化:将这个修改过的容器

    2024年01月23日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包