天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
Linux系统版本:ubuntu 22.04.2
Docker版本:24.0.7
Elasticsearch版本:7.17.0
Kibana版本:7.17.0
参考文章:
注1:
虚拟机内存设置最好不低于2G即2048M
es和kibana版本尽量一致
注2
docker中使用es必须是在非root用户下
docker中使用es必须是在非root用户下
docker中使用es必须是在非root用户下
我这里使用自己的用户hanshan2,所以命令都要加sudo前缀,不然会报没有权限的错
这里可以创建一个网络环境,后面启动es和kibana容器的时候分别加上这个网络的参数
以此来将es和kibana放在同一网络环境中使用,他的好处可能就是后续访问时不需要写服务器地址,直接使用容器名加端口号即可,如果想要使用这一条件则执行命令创建一个网络环境
sudo docker network create es-net
sudo docker pull elasticsearch:7.17.0
sudo docker pull kibana:7.17.0
查看已经拉取好的镜像
sudo docker images
为了方便看所以加了换行,正常可不加,执行命令后成功则会返回一个很长的容器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(前面创建的)的网络中
查看正在运行的容器
sudo docker ps
如果没有正在运行的容器则说明容器运行失败
或者容器运行一会过后再去查看就没了,也是有问题的
此时可通过命令查看全部容器
sudo docker ps -a
然后删除重新创建(根据容器名或者容器ID删除容器)
sudo docker rm -f 容器名/容器ID
若上一步容器启动运行正常,则可进行测试es服务是否可用,执行以下命令访问es
curl http://localhost:9200
除了上面命令访问还可以到本地的浏览器中访问
由于我们是在虚拟机中的docker运行的服务,此时想要在自己的Windows电脑上的浏览器中访问es,就需要使用到虚拟机的IP地址
ifconfig
在浏览器中输入ip加端口号访问即可
192.168.8.162:9200
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在同一网络环境,可选
查看运行的容器
sudo docker ps
由于kibana启动比较慢
运行容器后,等一会再去访问
浏览器输入访问地址:ip地址:9200
如下
192.168.8.162:5601
这里的ip地址为docker所在虚拟机的ip地址
注:
如果刚运行容器就去访问服务可能会显示Kibana server is not ready yet
若等几分钟后还是这个提示,大概率是配置出问题了
感谢阅读,祝君暴富!