注意:Elasticsearch从6.8开始, 允许免费用户使用X-Pack的安全功能, 以前安装es都是裸奔。接下来记录配置安全认证的方法。
1. 获取镜像
# 查看可用的稳定版本
sudo docker search elasticsearch
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.2
#sudo docker pull elasticsearch:6.7.0
sudo docker image ls |grep elasticsearch
2. ES配置
sudo rm -rf /share/es762.yml
sudo vi /share/es762.yml
配置如下:
cluster.name: "docker-es-cluster"
# es-6.7.0需注释cluster.initial_master_nodes
cluster.initial_master_nodes: ["node-1"]
network.host: 0.0.0.0
node.name: node-1
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
3. 启动容器
# es-6.7.0
#docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -v /share/es670.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /var/docker/elastic/data:/data -p 9200:9200 -p 9300:9300 --name es670 elasticsearch:6.7.0
# es-7.6.2
docker run -d --name=es762 \
-v /share/es762.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
--privileged=true \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:7.6.2
sudo docker ps -a |grep es762
sudo docker start es762
sudo docker restart es762
sudo docker stop es762
sudo docker rm es762
4. 插件安装
1. Head插件
sudo docker pull docker.io/tobias74/elasticsearch-head
sudo docker run -id --name es762-head \
-p 9100:9100 \
docker.io/tobias74/elasticsearch-head
sudo docker ps -a |grep es762-head
sudo docker start es762-head
sudo docker restart es762-head
sudo docker stop es762-head
sudo docker rm es762-head
2. ElasticHD插件
sudo docker pull containerize/elastichd
sudo docker run -d --name es762-hd \
-p 9800:9800 \
--link es762 \
containerize/elastichd
sudo docker ps -a |grep es762-hd
sudo docker start es762-hd
sudo docker restart es762-hd
sudo docker stop es762-hd
sudo docker rm es762-hd
3. 分词插件
sudo docker exec -it es762 /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
5. 错误修复
- 错误:“**max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]**”
解决方案1(临时):
sudo sysctl -w vm.max_map_count=262144
解决方案2(永久):
sudo vi /etc/sysctl.conf
添加配置:
vm.max_map_count=262144
修改完成后执行:
sudo sysctl -p
- 错误:“**bootstrap checks failed**”
解决方案:
sudo vi /etc/security/limits.conf
添加配置:
* soft nofile 65536
* hard nofile 65536
6. 验证
# 查看容器状态
sudo docker ps -a |grep es762
sudo docker ps -a |grep -E 'es762|es762-head|es762-hd'
# 进入终端
sudo docker exec -it es762 /bin/bash
# 查看日志
sudo docker logs -f -t --tail=50 es762
# 查看网络
sudo docker network ls
sudo docker inspect es762
# 查看端口
netstat -lnp|grep 9100
netstat -lnp|grep 9200
- Web UI
- ES Web UI:http://192.168.0.99:9200
- ES-Head Web UI:http://192.168.0.99:9100
- ES-HD Web UI:http://192.168.0.99:9800 (**注意:ES-HD连接时需要使用IP**)
7. 备份
1. 基础镜像备份
```bash确保容器为启动状态
ES
docker commit -a “polaris450733605@qq.com“ -m “This is backup for elasticsearch:7.6.2” es762 tmp-elasticsearch:v7.6.2
Head插件
docker commit -a “polaris450733605@qq.com“ -m “This is backup for elasticsearch-head” es762-head my-elasticsearch-head:latest
ElasticHD插件
docker commit -a “polaris450733605@qq.com“ -m “This is backup for elasticsearch-hd” es762-hd my-elasticsearch-hd:latest
<a name="cEH5l"></a>
## 2. 数据卷备份
**_备份镜像时外挂数据卷无法加载到镜像中,可通过Dockfile构建的方式进行文件添加。_**
- **编辑Dockerfile**
```bash
cd /share
vi es762.Dockerfile
内容如下:
FROM tmp-elasticsearch:v7.6.2
MAINTAINER polaris "450733605@qq.com"
ADD es762.yml /usr/share/elasticsearch/config/elasticsearch.yml
构建镜像
docker build -f es762.Dockerfile -t my-elasticsearch:v7.6.2 . docker images | grep my-elasticsearch
3. 打包镜像
独立打包
# 导出ES镜像(镜像:830MB,压缩包:803MB) docker save -o docker-elasticsearch-7.6.2-solo.save.tar my-elasticsearch:v7.6.2 # Head插件(镜像:812MB,压缩包:810MB) docker save -o docker-elasticsearch-head-7.6.2-solo.save.tar my-elasticsearch-head:latest # ElasticHD插件(镜像:28MB,压缩包:28MB) docker save -o docker-elasticsearch-hd-7.6.2-solo.save.tar my-elasticsearch-hd:latest
合并打包
docker save my-elasticsearch:v7.6.2 my-elasticsearch-head:latest my-elasticsearch-hd:latest > docker-elasticsearch-7.6.2-solo.all.save.tar
4. 加载镜像
```bash
加载镜像
docker load -i docker-elasticsearch-7.6.2-solo.save.tar docker load -i docker-elasticsearch-head-7.6.2-solo.save.tar docker load -i docker-elasticsearch-hd-7.6.2-solo.save.tar
合并包
docker load -i docker-elasticsearch-7.6.2-solo.all.save.tar
查看镜像
docker image ls |grep my-elasticsearch docker image ls |grep -E ‘my-elasticsearch|my-elasticsearch-head|my-elasticsearch-hd’
<a name="vefFv"></a>
## 5. 运行容器
```bash
# 启动ES
docker run -d --name=es762 \
--privileged=true \
-p 9200:9200 \
-p 9300:9300 \
my-elasticsearch:v7.6.2
# 启动Head
sudo docker run -id --name es762-head \
-p 9100:9100 \
my-elasticsearch-head:latest
# 启动HD
sudo docker run -d --name es762-hd \
-p 9800:9800 \
--link es762 \
my-elasticsearch-hd:latest
参考
CSDN:Docker安装elasticsearch-7.7.0
https://blog.csdn.net/kevinmeng0509/article/details/106332399/
CSDN:手把手教你Windows下用Docker安装Elasticsearch和可视化管理工具ElasticHD和dejavu
https://blog.csdn.net/myyougod01/article/details/102588102