Elasticsearch在docker中的安装
安装Elasticsearch
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docker.html
1 安装elasticsearch
- 拉取 Elasticsearch 7.17 镜像:运行以下命令拉取 Elasticsearch 7.17 镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.9
- 创建配置文件和数据文件夹:运行以下命令创建配置文件夹和数据文件夹:
mkdir -p /zpyl/myDocker/es/config
mkdir -p /zpyl/myDocker/es/data
mkdir -p /zpyl/myDocker/es/logs
- 创建配置文件:在 /my/es/config 目录下创建 elasticsearch.yml 文件,将以下内容添加到文件中
注意:如果做了config、data和logs的映射,需要先初始化一个es,将初始化容器内的data、config和logs这些目录下的文件全部复制到宿主机内部,否则该容器可能会无法启动
http.port: 9200
discovery.type: single-node
network.host: 0.0.0.0
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
- 启动 Elasticsearch 容器:运行以下命令启动 Elasticsearch 容器,并将配置文件夹和数据文件夹映射到容器中:
docker run -d -p 9200:9200 -p 9300:9300 --network zpyl_network -v /zpyl/myDocker/es/config:/usr/share/elasticsearch/config -v /zpyl/myDocker/es/data:/usr/share/elasticsearch/data -v /zpyl/myDocker/es/logs:/usr/share/elasticsearch/logs
--name myEs docker.elastic.co/elasticsearch/elasticsearch:7.17.9
- 如果启动时存在报错,并且是启动报Could not rename log file ‘logs/gc.log’ to ‘logs/gc.log.06’ (Permission denied).需要进入容器内部,修改目录的权限
# 这个问题出现的原因是 Docker 启动容器时并不会给容器内的用户最高权限。
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/logs
2 安装 Kibana
- 拉取 kibana 7.17 镜像:运行以下命令拉取 kibana 7.17 镜像
docker pull docker.elastic.co/kibana/kibana:7.17.9
- 创建配置文件和数据文件夹:运行以下命令创建配置文件夹和数据文件夹:
mkdir -p /zpyl/myDocker/kibana/config
mkdir -p /zpyl/myDocker/kibana/data
- 创建配置文件:在 /my/kibana/config 目录下创建 kibana.yml 文件,将以下内容添加到文件中
注意:如果做了config、data和logs的映射,需要先初始化一个es,将初始化容器内的data、config和logs这些目录下的文件全部复制到宿主机内部,否则该容器可能会无法启动
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://myEs:9200"]
- 启动 kibana 容器:运行以下命令启动 kibana 容器,并将配置文件夹和数据文件夹映射到容器中:
docker run -d -p 5601:5601 --name myKibaba --network zpyl_network -v /zpyl/myDocker/kibana/config:/usr/share/kibana/config -v /zpyl/myDocker/kibana/data:/usr/share/kibana/data docker.elastic.co/kibana/kibana:7.17.9