文章目录
- 1 简介
- 2 Docker安装与配置
- 2.1 安装Docker
- 2.2 配置Docker镜像加速器
- 2.3 调整Docker资源限制
- 3 准备Elasticsearch Docker镜像
- 3.1 下载Elasticsearch镜像
- 3.2 自定义镜像配置
- 3.3执行Docker Compose
- 4 运行Elasticsearch容器
- 4.1 创建Elasticsearch容器
- 4.2 修改配置文件
- 4.3 验证Elasticsearch运行状态
- 5 常见问题
- 6 总结
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的依赖和配置。