注意:Docker Hub上的ES版本太老,要在www.docker.elastic.co/r/elasticse… 找到新版本的ES
安装Docker
进入Docker官网www.docker.com,下载Docker Desktop并安装。
之后在终端执行docker --version,应该能看到docker版本信息
安装Elasticsearch
拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:9.3.4-arm64
启动容器
docker run -d \
--name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "xpack.security.transport.ssl.enabled=false" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "TZ=Asia/Shanghai" \
-v /Users/xct/volumes/elasticsearch:/usr/share/elasticsearch/data \
docker.elastic.co/elasticsearch/elasticsearch:9.3.4-arm64
测试
curl -X GET "localhost:9200/?pretty"
看到类似下面的json,即成功
{
"name" : "...",
"cluster_name" : "docker-cluster",
"version" : { ... },
"tagline" : "You Know, for Search"
}
可视化
创建自定义docker网络让 ES 和 Kibana 容器互通
docker network create elastic-net
将现有的 ES 容器加入网络
docker network connect elastic-net elasticsearch
运行 Kibana 容器,端口映射为 5601,同一网络下容器名可直接通信
#拉镜像
docker pull docker.elastic.co/kibana/kibana:9.3.4-arm64
# 运行
docker run -d \
--name kibana \
--network elastic-net \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \
docker.elastic.co/kibana/kibana:9.3.4-arm64
访问http://localhost:5601,可看到
常用的管理命令
# 查看容器状态
docker ps | grep elasticsearch
# 查看日志
docker logs elasticsearch
# 停止容器
docker stop elasticsearch
# 启动已存在的容器
docker start elasticsearch
# 重启容器
docker restart elasticsearch
# 删除容器(数据仍在 /Users/xct/volumes/elasticsearch)
docker rm elasticsearch
# 彻底删除容器 + 数据(慎用)
docker rm -f elasticsearch && rm -rf /Users/xct/volumes/elasticsearch