docker安装Elasticsearch(单节点)
1、创建挂载文件目录
cd /data
mkdir -p software/elasticsearch/9200/logs software/elasticsearch/9200/data software/elasticsearch/9200/conf
chmod 777 software/elasticsearch/9200/logs software/elasticsearch/9200/data software/elasticsearch/9200/conf
查看创建结果
tree
2、docker拉取镜像
离线部署
在有网络的服务器上拉取镜像,并打包。
#拉取
docker pull elasticsearch:7.10.1
#打包镜像为压缩包
docker save -o /data/app/elasticsearch-7.2.1.tar elasticsearch:7.10.1
#将镜像压缩包上传到离线的服务器上,加载离线镜像
docker load -i elasticsearch-7.2.1.tar
查看并拉取镜像
#搜索镜像
docker search redis
#拉取镜像,未指定版本时,将自动拉取稳定版:last
docker pull redis
#查看镜像
docker images
docker images -a
3、配置文件映射
3.1、日志文件
在 software/elasticsearch/9200/log目录下,创建一个空的日志文件 elasticsearch.log。
[root@docker log]# touch elasticsearch.log
[root@docker log]# ls
elasticsearch.log
修改日志文件权限,将 elasticsearch.log 日志文件的权限设置为可读写。
chmod 777 elasticsearch.log
[root@docker log]# chmod 777 elasticsearch.log
[root@docker log]# ll
总用量 0
-rwxrwxrwx. 1 root root 0 9月 15 11:16 elasticsearch.log
3.2、配置文件
查看镜像信息
docker inspect [镜像ID]
[root@docker software]# docker inspect 39ac5829bade
启动测试容器
docker run --name elasticsearch_test \
--privileged \
-e "discovery.type=single-node" \
-p 9200:9200 \
-p 9300:9300 \
-d elasticsearch:7.10.1
#进入容器
docker exec -it es-test bash
#生成证书(容器根目录执行)
./bin/elasticsearch-certutil ca
#所有选择全部回车
#退出容器 exit,复制容器中的配置到宿主机
docker cp elasticsearch_test:/usr/share/elasticsearch/elastic-stack-ca.p12 /data/software/elasticsearch/9200/conf/
docker cp elasticsearch_test:/usr/share/elasticsearch/config/jvm.options /data/software/elasticsearch/9200/conf/
docker cp elasticsearch_test:/usr/share/elasticsearch/config/elasticsearch.yml /data/software/elasticsearch/9200/conf/
#查看复制出来的配置文件
[root@docker conf]cd /data/software/elasticsearch/9200/conf/
[root@docker conf]# ll
总用量 12
-rw-rw----. 1 root root 53 12月 5 2020 elasticsearch.yml
-rw-------. 1 root root 2527 9月 15 15:58 elastic-stack-ca.p12
-rw-rw----. 1 root root 2301 12月 5 2020 jvm.options
文件复制完毕后使用exit退出容器,然后停止并删除容器。
修改配置文件
进入文件夹编辑配置文件:
[root@docker conf]# cd /data/software/elasticsearch/9200/conf/
[root@docker conf]# vi jvm.options
#修改JVM参数:
-Xms512m
-Xmx512m
[root@docker conf]# vi elasticsearch.yml
cluster.name: "elasticsearch-cluster"
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
4、启动docker容器
docker run --restart always --name elasticsearch_9200 \
--privileged \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "TZ=Asia/Shanghai" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1096m" \
-v /data/software/elasticsearch/9200/conf/jvm.options:/usr/share/elasticsearch/config/jvm.options \
-v /data/software/elasticsearch/9200/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/software/elasticsearch/9200/data:/usr/share/elasticsearch/data \
-v /data/software/elasticsearch/9200/logs:/usr/share/elasticsearch/logs \
-v /data/software/elasticsearch/9200/conf/elastic-stack-ca.p12:/usr/share/elasticsearch/config/elastic-stack-ca.p12 \
-d elasticsearch:7.10.1
5、查看启动结果
docker ps
#查看全部容器,包括启动失败的容器
docker ps -a
#删除容器或者镜像
docker rm [容器ID、容器名称、镜像ID]
#进入容器
docker exec -it [容器名称] bash
6、检查日志
docker logs elasticsearch_9200
这里表示elasticsearch启动成功。
7、安装head查看工具
#拉取镜像(离线则上传镜像)
docker pull mobz/elasticsearch-head:5
#启动容器
docker run --name elasticsearch-head -p 9100:9100 -d mobz/elasticsearch-head:5
使用宿主机IP:9100访问:
如图显示即为访问成功。