写在最前面!!!
- ElasticSearch的版本与Kibana的版本要保持一致
- 建议先从kibana官网中找到符合本机的Kibana镜像版本,再去下载与其版本一致的ElasticSearch镜像
- 修改配置文件,可以不直接进入镜像包进行修改,因为一般镜像中并没安装vi/vim类似的命令
- 复制到本地进行修改,修改好后再复制回去
# 复制到本地
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml ./
# 复制回去
docker cp ./elasticsearch.yml es:/usr/share/elasticsearch/config/elasticsearch.yml
Mac中安装Docker
- 本机:MAC Apple M1
- 登录/注册 Docker官网,根据本地主机信息下载 Docker Desktop APP
ElasticSearch基于Docker的部署
拉取指定版本的镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.6.2
创建网络
docker network create es-net
# 删除网络 docker network rm es-net
# es-net 为自定义的名字,可作修改
启动单个节点的es
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9202:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.6.2
修改配置
为了方便起见,使用无需账号密码登录,修改 elasticsearch.yml
,在最后添加
xpack.security.enabled: false
测试是否启动成功
- 通过
docker ps
进行查看
如果看到有elasticsearch
容器内容,说明启动成功
- 通过
curl
命令查看 elasticsearch 健康状态
curl -X GET "http://0.0.0.0:9202/_cat/health?v"
# 主要关注status:green-正常, yellow-, red-不正常
- 通过访问网页
http://0.0.0.0:9202/
进行查看
返回以下信息说明成功
{
"name" : "xxxxx",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "xxxx",
"version" : {
"number" : "8.6.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "xxxx",
"build_date" : "xxxxxx",
"build_snapshot" : false,
"lucene_version" : "9.4.2",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
如果无法打开,则可能是端口号冲突。
Kibana基于Docker的部署
拉取指定版本的镜像
docker pull docker.elastic.co/kibana/kibana:8.6.2
连接elasticsearch启动Kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
docker.elastic.co/kibana/kibana:8.6.2
测试是否启动成功
- 通过
docker ps
进行查看
如果有kibana
的容器,则说明成功
- 通过访问网页
http://0.0.0.0:5601/
进行查看
如果无法正常打开,显示 ‘kibana is not ready yet’。一般情况是由于配置错误,主要关注ELASTICSEARCH_HOSTS
是否正确