一、安装版本选择
- docker search elasticsearch
C:\Users\>docker search elasticsearch
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
elasticsearch Elasticsearch is a powerful open source sear… 5218 [OK]
nshou/elasticsearch-kibana Elasticsearch-7.12.1 Kibana-7.12.1 131 [OK]
mobz/elasticsearch-head elasticsearch-head front-end and standalone … 80
elastichq/elasticsearch-hq Official Docker image for ElasticHQ: Elastic… 76 [OK]
itzg/elasticsearch Provides an easily configurable Elasticsearc… 71 [OK]
elastic/elasticsearch The Elasticsearch Docker image maintained by… 54
taskrabbit/elasticsearch-dump Import and export tools for elasticsearch 27 [OK]
- 因为公司现在使用的是 elasticsearch : 6.5.4所以我本地就装了这版本,想安装其他版本可以加上tag
C:\Users\>docker pull elasticsearch:6.5.4
6.5.4: Pulling from library/elasticsearch
a02a4930cb5d: Pull complete
dd8a94cca3f9: Pull complete
bd73f551dee4: Pull complete
70de352c4efc: Pull complete
0b5ae4c7310f: Pull complete
489d9f8b18f1: Pull complete
8ba96caf5951: Pull complete
f1df04f27c5f: Pull complete
Digest: sha256:7053b3979a1dd709f2a225d52bc53622714790b13d88cf08164d252291ab8b61
Status: Downloaded newer image for elasticsearch:6.5.4
docker.io/library/elasticsearch:6.5.4
二、创建bridge网络
创建这个网络主要为了让es能够和kibana处在同一个子网中,可以相互通信
# 这个是在搭建zookeeper集群时候用的子网,在这也是可以用的
docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet
三、创建文件映射目录
如果需要log和其他配置也可以做映射
创建D:/elasticsearch/conf/elasticsearch.yml
添加 :http.host: 0.0.0.0
D:/elasticsearch/conf
D:/elasticsearch/data
D:/elasticsearch/plugins
四、启动es
docker run -d --name elasticsearch --net zoonet --ip 172.18.0.10 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v D:/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/elasticsearch/data:/usr/share/elasticsearch/data -v D:/elasticsearch/plugins:/usr/share/elasticsearch/plugins 93109ce1d590
C:\Users>docker run -d --name elasticsearch --net zoonet --ip 172.18.0.10 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v D:/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/elasticsearch/data:/usr/share/elasticsearch/data -v D:/elasticsearch/plugins:/usr/share/elasticsearch/plugins 93109ce1d590
6ef9f9b0bd6e08a436f710783dbec32f9a11c6ce46e43ac2eb2be0ffb40daa2c
参数解释:
docker run -d
# 容器名称
--name elasticsearch
# 指定所在的网络
--net zoonet
#指定在容器内的ip
--ip 172.18.0.10
# 映射端口号
-p 9200:9200 -p 9300:9300
# 告诉es是非集群模式
-e "discovery.type=single-node"
# 设置jvm的大小
-e ES_JAVA_OPTS="-Xms64m -Xmx128m"
# 配置文件映射
-v D:/elasticsearch/conf/elasticsearch.yml: /usr/share/elasticsearch/config/elasticsearch.yml
# 数据映射
-v D:/elasticsearch/data:/usr/share/elasticsearch/data
# 插件映射
-v D:/elasticsearch/plugins:/usr/share/elasticsearch/plugins
# 镜像id
93109ce1d590
五、查看es是否口安装成功
- docker ps 查看是否有es的容器在运行
C:\Users>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3ddcbd06746 93109ce1d590 "/usr/local/bin/dock…" 24 seconds ago Up 22 seconds 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch
2.本地访问9200端口
http://localhost:9200/
当出现如下内容时说明es单机已经启动成功
{
"name" : "vT2_1xW",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "BsXW3bF5Rh6Bw0_gUomVwg",
"version" : {
"number" : "6.5.4",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "d2ef93d",
"build_date" : "2018-12-17T21:17:40.758843Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
3.查看容器详情
docker inspect b3ddcbd06746
可以看到es现在的
IP是 ; “IPAddress”: “172.18.0.10”,
网关是; “Gateway”: “172.18.0.1”,
"Networks": {
"zoonet": {
"IPAMConfig": {
"IPv4Address": "172.18.0.10"
},
"Links": null,
"Aliases": [
"b3ddcbd06746"
],
"NetworkID": "7c09afe03cac270dc75eda01d7d4583bbd2bf77b940666ccd831ec901425bc57",
"EndpointID": "fed985a390f0a011342499c65333c568ccb95a97aef7406da9222665b737bbcb",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.10",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:0a",
"DriverOpts": null
}
}
六、Kibana安装
kibana的版本要与es的版本保持一致
docker pull kibana:6.5.4
- 6.1 创建配置文件
D:/elasticsearch/kibana/conf/kibana.yml
server.port: 5601 # 端口号
server.host: 0.0.0.0 # 所有主机都可以访问
# elasticsearch.url: "http://172.18.0.10:9200" 版本不同这个配置不一样,
# 如果这个错大多数是因为这个原因。 FATAL ValidationError: child "elasticsearch" fails because ["hosts" is not allowed]
# elasticsearch.hosts: [ "http://172.18.0.10:9200" ] # es的ip地址 需要kibana和es在同一个子网中
elasticsearch.url: "http://172.18.0.10:9200"
i18n.locale: "Zh-CN"
- 6.2执行脚本
docker run -d -p 5601:5601 --name kibana --net zoonet -v D:/elasticsearch/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml 3c8a8603d365
参数解释:
docker run -d
# kibana端口映射
-p 5601:5601
# 容器名称
--name kibana
# 指定所在子网
--net zoonet
# 配置
-v D:/elasticsearch/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
# 镜像id
3c8a8603d365
C:\Users>docker run -d -p 5601:5601 --name kibana --net zoonet -v D:/elasticsearch/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml 3c8a8603d365
b5e5756dbe6ebc35a2b084c4c24e9304468033ca407f6c1e2bfe9226f951f213
- 6.3 验证kibana是否启动成功
docker ps
C:\Users>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e36bae45431f 3c8a8603d365 "/usr/local/bin/kiba…" 5 minutes ago Up 24 seconds 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp kibana
如果查看不到kibana启动成功。
可以在启动的时候不加 -d 将它将报错信息打印到屏幕上。查看报错信息。
- 报错:
FATAL ValidationError: child “elasticsearch” fails because [“hosts” is not allowed]
elasticsearch.url: “http://172.18.0.10:9200” 版本不同这个配置不一样,
如果这个错大多数是因为这个原因。 FATAL ValidationError: child “elasticsearch” fails because [“hosts” is not allowed]
elasticsearch.hosts: [ “http://172.18.0.10:9200” ] # es的ip地址 需要kibana和es在同一个子网中
elasticsearch.url: “http://172.18.0.10:9200”
- 访问kibana页面
http://localhost:5601