Elasticsearch——Docker单机部署安装

本文详细指导了如何在单机上使用Docker安装、配置Elasticsearch,包括安装Docker、配置镜像加速器、调整资源限制,以及使用DockerCompose管理Elasticsearch容器和解决常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 简介

Elasticsearch是一个开源的分布式搜索和分析引擎,使用Lucene库来实现全文搜索功能。本文将介绍如何使用Docker在单机上部署和安装Elasticsearch。

2 Docker安装与配置

2.1 安装Docker

首先,你需要安装Docker引擎。你可以按照官方文档的指引完成安装过程。确保你的操作系统满足Docker的最低硬件要求。

2.2 配置Docker镜像加速器

为了加快Docker镜像的下载速度,你可以配置Docker镜像加速器。这里以阿里云的镜像加速器为例。

在终端中执行以下命令进行配置:

$ sudo vi /etc/docker/daemon.json

在打开的文件中添加以下内容:

{
  "registry-mirrors": ["https://your-registry-mirror-url"]
}

your-registry-mirror-url替换为你使用的镜像加速器的地址。

保存并关闭文件后,重新启动Docker服务:

$ sudo systemctl restart docker

2.3 调整Docker资源限制

根据你的需求,你可能需要调整Docker的资源限制,如内存和CPU等。你可以通过修改Docker启动配置文件来实现。

编辑Docker配置文件:

$ sudo vi /etc/docker/daemon.json

添加以下内容来设置资源限制:

{
  "default-cgroup-parent": "your-cgroup-parent-path"
}

your-cgroup-parent-path替换为你自定义的cgroup路径。

保存并关闭文件后,重新启动Docker服务:

$ sudo systemctl restart docker

3 准备Elasticsearch Docker镜像

3.1 下载Elasticsearch镜像

接下来,我们需要从Docker Hub上下载Elasticsearch的官方镜像。执行以下命令以拉取最新的版本:

$ docker pull elasticsearch:8.5.0

3.2 自定义镜像配置

你也可以根据需要自定义Elasticsearch镜像的配置。这里以Docker Compose为例,创建一个docker-compose.yml文件,并添加以下配置:

version: '3'
services:
  elasticsearch:
    image: elasticsearch:8.5.0
    privileged: true
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - 9200:9200
      - 9300:9300

通过将 privileged 设置为 true,容器将获得主机的特权权限,可以执行特权操作。
这个配置将创建一个使用单节点模式的Elasticsearch容器,并将端口9200和9300映射到主机的相应端口上。

3.3执行Docker Compose

docker-compose up -d #这是后台执行的命令

4 运行Elasticsearch容器

4.1 创建Elasticsearch容器

使用Docker Compose运行Elasticsearch容器:

$ docker-compose up -d

4.2 修改配置文件

因为这里默认的镜像中的配置文件的网络模式,以及还有一个安全认证的配置需要去掉

cluster.name: "docker-cluster"
http.host: 0.0.0.0

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically      
# generated to configure Elasticsearch security features on 05-09-2023 07:49:11
#
# --------------------------------------------------------------------------------

# Enable security features
xpack.security.enabled: false

xpack.security.enrollment.enabled: true

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------

在这里插入图片描述

4.3 验证Elasticsearch运行状态

等待一段时间后,你可以通过curl命令或浏览器访问来验证Elasticsearch的运行状态。以下是一个示例:

$ curl http://localhost:9200

在这里插入图片描述

5 常见问题

以下是一些常见问题及其解决方法:

  • 问题1:无法连接到Elasticsearch容器。
    解决方法:确保Elasticsearch容器正在运行,并且Docker网络配置正确。

  • 问题2:启动Elasticsearch容器时内存不足。
    解决方法:调整Docker资源限制,增加可用内存。

  • 问题3:无法拉取Elasticsearch镜像。
    解决方法:检查Docker镜像加速器配置是否正确,并确保网络连接畅通。

6 总结

本文介绍了如何使用Docker在单机上部署和安装Elasticsearch。通过使用Docker,我们可以快速搭建开发和测试环境,并有效管理Elasticsearch的依赖和配置。

### 如何使用 Docker 部署关系型或非关系型数据库 #### MySQL 数据库部署 为了基于 Docker 容器部署 MySQL 数据库,可以利用阿里云的资源来配置 yum 源。通过命令 `yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo` 来添加所需的仓库[^1]。 接着,在成功安装 Docker 后,可以通过拉取官方 MySQL 镜像并启动容器完成部署工作。具体操作如下: ```bash # 更新本地包索引,并安装最新版 Docker CE sudo yum update -y && sudo yum install docker-ce docker-ce-cli containerd.io -y # 启动 Docker 服务 sudo systemctl start docker # 下载 MySQL 的 Docker 镜像 (这里以 mysql:latest 版本为例) docker pull mysql:latest # 运行 MySQL 容器实例 docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag ``` 上述命令会创建一个新的名为 `some-mysql` 的 MySQL 实例,并设置 root 用户密码为 `my-secret-pw`。 #### MariaDB 数据库部署 对于希望采用开源替代方案的情况来说,MariaDB 是一个不错的选择。同样地,先确认已经正确设置了 Docker 环境之后再继续下面的操作[^2]。 ```bash # 获取最新的 mariadb 镜像文件 docker pull mariadb # 创建并运行新的 mariadb 容器 docker run --name mymariadb -e MARIADB_ROOT_PASSWORD=rootpassword \ -e MARIADB_DATABASE=testdb -e MARIADB_USER=user -e MARIADB_PASSWORD=password \ -p 3306:3306 -d mariadb ``` 这段脚本不仅指定了必要的环境变量用于初始化新建立的数据表空间以及访问权限分配,还映射了默认端口以便于后续管理维护。 #### Kingbase 数据库部署 针对特定行业需求而设计的关系型数据库管理系统——Kingbase ES 可以按照以下方式快速搭建起来: ```bash docker run -tid --privileged \ -p 54321:54321 \ -v /opt/data:/home/kingbase/userdata/ \ -e NEED_START=yes \ -e DB_USER=kingbase \ -e DB_PASSWORD=123456 \ -e DB_MODE=oracle \ --name kingbase \ kingbase_v009r001c001b0030_single_x86:v1 /usr/sbin/init ``` 此段指令集成了多个选项来自定义化部署过程中的各项参数设定,比如持久化存储路径、初始登录凭证等信息[^3]。 #### openGauss 数据库部署 最后介绍的是由华为主导开发的企业级分布式SQL引擎—openGauss,其部署流程相对复杂一些,涉及到了更多细节上的考量[^4]: - **准备阶段**: 对宿主机执行全面检测确保满足最低硬件要求;同时也要核查当前正在使用的 Linux 发行版本号是否兼容。 - **获取镜像**: 访问 Docker Hub 或其他可信源下载对应标签下的 openGauss 映像档案。 - **构建单机模式集群**: 构建专用目录保存重要资料副本;随后调用 `docker run` 命令指定相应属性值生成独立运作单元。 - **多节点高可用架构建设**: 编写 shell 脚本来简化批量处理任务难度;依据实际情况调整内部逻辑实现自动化运维目标。 - **日志审查机制设立**: 利用内置工具定期收集分析异常情况报告辅助故障排查作业。 以上就是关于几种不同类型数据库借助 Docker 技术实施简易化的指南说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮卡冲撞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值