一. 获取容器
1.1 使用如下镜像网站可以下载镜像然后进行安装.
https://docker.aityp.com/s/docker.elastic.co
1.2 这里es使用的是 8.12.1 的版本, 当然你的 kibana需要是对应的版本, 8.12.1如果版本不一样的话会无法启动kibana
1.3 直接使用镜像网站上的命令来拉取镜像.
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/elasticsearch/elasticsearch:8.12.1
1.4 然后启动容器
docker run --name es -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" --net host -e "discovery.type=single-node" -e "network.host=192.168.60.76" -p 9200:9200 -p 9300:9300 fac663bf2f40
注意需要把network.host=192.168.60.76 中的ip地址换成你自己主机的ip
- docker run -d: 这部分表示在后台运行容器。
- --name es: 为容器指定一个名字,这里是 “es”。
- -e "ES_JAVA_OPTS=-Xms512m -Xmx512m": 设置 Java 虚拟机的参数,包括初始堆内存大小 (-Xms) 和最大堆内存大小 (-Xmx),这里都设置为 512MB。
- -e "discovery.type=single-node": 设置 Elasticsearch 的节点发现机制为单节点,因为在这个配置中只有一个 Elasticsearch 实例。
- -v es-data:/usr/share/elasticsearch/data: 将容器内 Elasticsearch 的数据目录挂载到宿主机的名为 “es-data” 的卷上,以便数据持久化。
- -v es-plugins:/usr/share/elasticsearch/plugins: 类似上面,将容器内 Elasticsearch 的插件目录挂载到宿主机的名为 “es-plugins” 的卷上。
- --privileged: 赋予容器一些特权,可能会有一些安全风险,需要慎用。
- --network es-net: 将容器连接到名为 “es-net” 的网络上,目的是为了与其他容器进行通信。
- -p 9200:9200 -p 9300:9300: 将容器内部的端口映射到宿主机上,这里分别是 Elasticsearch 的 HTTP REST API 端口(9200)和节点间通信的端口(9300)。
- fac663bf2f40: 指定要运行的 Docker 镜像的名称和版本号,这里是 Elasticsearch 7.12.1 版本。
1.5 接下来你就可以访问你的ip:9200 来验证是否启动成功.
如果是这样的界面那么就是启动成功了, 如果你一直访问失败, 你可以查看一下docker的日志
使用 docker logs es 来查看es的日志
这个镜像的es默认开启了用户名和密码以及https 你需要使用https 来进行访问, 会弹出让你输入用户名和密码.
这个时候就需要进入容器把https和用户名密码关了
docker exec -t es /bin/bash
然后进入config文件夹中有一个 elasticsearch.yml 配置文件, 需要将里面的 enable都置为false
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false
如果你容器里没有vi 或者 vim 命令 你可以进行安装
apt-get update
apt-get install -y vim
做完这一些列操作后需要推出容易然后重启容器
docker restart es
接下来你的es就可以访问地址来验证你的es是否安装好了,
2.1 接下来是kibana 的安装 还是在刚才的那个镜像网站上拉取镜像
https://docker.aityp.com/r/docker.elastic.co/kibana/kibana
docker run -d --name kibana -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://192.168.60.76:9200 8ebc60d080bd
就可以启动kibana了 记得把最后的8ebc60d080bd 换成你的容器id
启动完成以后访问地址