Docker安装Elasticsearch和Kibana

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 1. 开发环境
  • 2. 同一网络环境配置(可选)
  • 3. 镜像拉取
    • 3.1 ES镜像拉取
    • 3.2 Kibana镜像拉取
  • 4. 查看镜像
  • 5. ES安装(运行容器)
    • 5.1 运行容器
    • 5.2 查看容器运行状态
    • 5.3 访问ES
      • 5.3.1 curl命令访问
      • 5.3.2 本机电脑浏览器使用虚拟机ip访问
  • 6. Kibana安装(运行容器)
    • 6.1 运行容器
    • 6.2 查看运行状态
    • 6.3 访问Kibana


1. 开发环境

Linux系统版本:ubuntu 22.04.2
Docker版本:24.0.7
Elasticsearch版本:7.17.0
Kibana版本:7.17.0

参考文章:

  1. Linux系统安装可参考:VirtualBox安装Ubuntu(22.04.2版本,其他版本也可参考此版安装)
  2. Docker安装可参考:Docker安装
  3. Elasticsearch和kibana Windows版本下载可参考:ELK下载(Elasticsearch、Logstash、Kibana)
  4. Elasticsearch Windows版本安装可参考:Elasticsearch安装
  5. kibana Windows版本安装可参考:Kibana安装、配置
  6. kibana操作es可参考:kibana操作elasticsearch(增删改查)
  7. docker安装Elasticsearch和kibana:本篇

注1:
虚拟机内存设置最好不低于2G即2048M
es和kibana版本尽量一致

注2
docker中使用es必须是在非root用户下
docker中使用es必须是在非root用户下
docker中使用es必须是在非root用户下

我这里使用自己的用户hanshan2,所以命令都要加sudo前缀,不然会报没有权限的错

2. 同一网络环境配置(可选)

这里可以创建一个网络环境,后面启动es和kibana容器的时候分别加上这个网络的参数
以此来将es和kibana放在同一网络环境中使用,他的好处可能就是后续访问时不需要写服务器地址,直接使用容器名加端口号即可,如果想要使用这一条件则执行命令创建一个网络环境

sudo docker network create es-net

3. 镜像拉取

3.1 ES镜像拉取

sudo docker pull elasticsearch:7.17.0

Docker安装Elasticsearch和Kibana_第1张图片

3.2 Kibana镜像拉取

sudo docker pull kibana:7.17.0

Docker安装Elasticsearch和Kibana_第2张图片

4. 查看镜像

查看已经拉取好的镜像

sudo docker images

在这里插入图片描述

5. ES安装(运行容器)

5.1 运行容器

为了方便看所以加了换行,正常可不加,执行命令后成功则会返回一个很长的容器ID

sudo docker run -d --name es \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
elasticsearch:7.17.0

在这里插入图片描述

注:如果前面创建了新的网络环境es-net,则可以添加一个参数--network es-net将es加入到该网络环境中

使用挂载目录-v参数时出现了问题(容器运行十几到二十几秒左右就会自动停止,暂时不知为何)
所以我这里没有使用-v挂载目录,运行容器后可正常使用,没有出现自动停止的情况

参数详解:
\ 反斜杠表示换行
--name es 表示给容器命名为es
-p 9200:9200 表示端口映射,此端口为http协议的RESTful接口,如增删改查操作
-p 9300:9300 表示同上,区别在于此处为ES节点之间通讯使用的端口,如TCP通讯端口、集群间的端口以及TCPclient(Java程序使用ES需要在配置文件中配置此端口)
-e "ES_JAVA_OPTS=Xms512m -Xmx512m" 内存大小
-e "discovery.type=single-node" 单节点模式(非集群模式)
-e "cluster.name=docker-es-cluster" 设置集群名称
-e "http.host=0.0.0.0" 监听的地址,设置后可外网访问
-v /mydata/es/data:usr/share/elasticsearch/data 文件夹挂载,绑定es的data文件夹
-v /mydata/es/plugins:/usr/share/elasticsearch/plugins 挂载逻辑卷,绑定es的插件目录
--privileged 授予逻辑卷访问权限
--network es-net 加入到名为es-net(前面创建的)的网络中

5.2 查看容器运行状态

查看正在运行的容器

sudo docker ps

在这里插入图片描述

如果没有正在运行的容器则说明容器运行失败
或者容器运行一会过后再去查看就没了,也是有问题的
此时可通过命令查看全部容器

sudo docker ps -a

然后删除重新创建(根据容器名或者容器ID删除容器)

sudo docker rm -f 容器名/容器ID

5.3 访问ES

5.3.1 curl命令访问

若上一步容器启动运行正常,则可进行测试es服务是否可用,执行以下命令访问es

curl http://localhost:9200

如果可用则会返回es的具体信息如下图
Docker安装Elasticsearch和Kibana_第3张图片

5.3.2 本机电脑浏览器使用虚拟机ip访问

除了上面命令访问还可以到本地的浏览器中访问
由于我们是在虚拟机中的docker运行的服务,此时想要在自己的Windows电脑上的浏览器中访问es,就需要使用到虚拟机的IP地址

ifconfig

Docker安装Elasticsearch和Kibana_第4张图片
如果没有安装net-tools根据提示安装后再查看即可

在浏览器中输入ip加端口号访问即可

192.168.8.162:9200

如图则表示es启动成功,服务可用
Docker安装Elasticsearch和Kibana_第5张图片

6. Kibana安装(运行容器)

6.1 运行容器

sudo docker -d --name kibana \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://192.168.8.162:9200 \
kibana:7.17.0

执行成功后返回容器ID
在这里插入图片描述
参数详解
-p 5601:5601 表示端口映射
-e ELASTICSEARCH_HOSTS=http://192.168.8.162:9200 表示设置elasticsearch的地址
--network es-net 表示将kibana也是自己创建的网络环境,使其与es在同一网络环境,可选

6.2 查看运行状态

查看运行的容器

sudo docker ps

在这里插入图片描述
容器状态都正常运行

6.3 访问Kibana

由于kibana启动比较慢
运行容器后,等一会再去访问
浏览器输入访问地址:ip地址:9200 如下

192.168.8.162:5601

这里的ip地址为docker所在虚拟机的ip地址
Docker安装Elasticsearch和Kibana_第6张图片
注:
如果刚运行容器就去访问服务可能会显示Kibana server is not ready yet
若等几分钟后还是这个提示,大概率是配置出问题了


感谢阅读,祝君暴富!

你可能感兴趣的:(ELK,#,Docker,Linux,docker,elasticsearch,容器)