一、创建网络
部署kibana容器需要让es和kibana容器互联
docker network create es-net
二、部署Elasticsearch
1、拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.2
2、创建挂载点目录
# 创建挂载点目录
mkdir -p /apps/ES/elasticsearch/config /apps/ES/elasticsearch/data /apps/ES/elasticsearch/plugins
# 授权
chmod 777 /apps/ES/elasticsearch/config
chmod 777 /apps/ES/elasticsearch/data
chmod 777 /apps/ES/elasticsearch/plugins
# 创建配置文件
touch /apps/ES/elasticsearch/config/elasticsearch.yml
3、编辑配置信息
vi /apps/ES/elasticsearch/config/elasticsearch.yml
network.host: 0.0.0.0
http.host: 0.0.0.0
cluster.name: "es-cluster"
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
4、部署单点es,创建es容器
docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /apps/ES/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /apps/ES/elasticsearch/data:/usr/share/elasticsearch/data \
-v /apps/ES/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
docker.elastic.co/elasticsearch/elasticsearch:7.15.2
5、验证是否部署成功
浏览器打开地址:http://ip:9200,出现如下界面表示部署成功
6、检查防火墙是否开启
# 查看状态
firewall-cmd --state
# 查看已开放的端口
firewall-cmd --list-ports
# 添加端口
firewall-cmd --add-port=9200/tcp --permanent
# 重启生效
firewall-cmd --reload
三、部署kibana
1、拉取镜像,版本与es版本保持一致
docker pull docker.elastic.co/kibana/kibana:7.15.2
2、创建挂载点目录
# 创建目录
mkdir -p /apps/ES/kibana/config /apps/ES/kibana/data
# 授权
chmod 777 /apps/ES/kibana/config
chmod 777 /apps/ES/kibana/data
3、创建kibana容器
docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
docker.elastic.co/kibana/kibana:7.15.2
四、安装插件
1、安装IK分词器
# 进入容器
docker exec -it es /bin/bash
# 安装ik插件,版本号与es版本号一致
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.2/elasticsearch-analysis-ik-7.15.2.zip
2、安装ingest-attachment
# 进入容器
docker exec -it es /bin/bash
# 安装ingest-attachment插件
./bin/elasticsearch-plugin install ingest-attachment
3、重启es
docker restart es
五、安装elasticsearch-head
1、拉取镜像
docker pull mobz/elasticsearch-head:5-alpine
2、创建容器
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5-alpine
3、解决访问报错406
修改容器内部usr/src/app/_site/vendor.js文件,将6886、7573行“application/x-www-form-urlencoded”改为“application/json;charset=UTF-8”
# 查看容器信息
docker ps
# 进入容器
docker exec -it gracious_feistel /bin/sh
# 修改_site/vendor.js文件
vi _site/vendor.js
# 显示行号
:set nu
# 查找关键字,n向下查找,N向上查找
/x-www-form-urlencoded
修改完成,退出容器,并重启
# 退出容器
exit
# 重启容器
docker restart gracious_feistel
六、docker操作命令
# 查看镜像
docker images
# 删除镜像
docker rmi 镜像ID/名称
# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 启动容器
docker start 容器ID/名称
# 重启容器
docker restart 容器ID/名称
# 停止容器
docker stop 容器ID/名称
# 删除容器,删除前先停掉容器
docker rm 容器ID/名称