一、Docker 安装 Es

安装之前先检查自己docker 环境是否正常,以及建议把docker 下载镜像源修改为阿里镜像

1、下载镜像文件

1
2
3
4
docker pull elasticsearch:7.4.2 存储和检索数据

# kibana 可以选择性安装
docker pull kibana:7.4.2 可视化检索数据

image-20210616224924075

image-20210616225250988

2、创建实例

① ElasticSearch

ElasticSearch 配置

1
2
3
4
5
6
7
8
9
10
# 将docker里的目录挂载到linux的/mydate目录中
mkdir -p /mydata/elasticsearch/config
# 修改/mydate就可以改掉docker里的
mkdir -p /mydata/elasticsearch/data

#es 可以被远程任何机器访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

# 递归更改权限, es需要访问 (保证权限)
chmod -R 777 /mydata/elasticsearch/

image-20210616230008262

Elastic search启动

1
2
3
4
5
6
7
8
9
10
11
12
# 9200是用户交互端口 9300是集群心跳端口
# -e指定是单阶段运行
# -e指定占用的内存大小,生产时可以设置32G
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

# 设置开机启动elasticsearch
docker update elasticsearch --restart=always

image-20210616230435851

image-20210616230455367

注意:

因为容器里的文件映射到了外面,所以删除容器和新建容器数据还在

-e ES_JAVA_OPTS=”-Xms64m -Xmx256m” \ 测试环境下, 设置 ES 的初始内存和最大内存, 否则导致过大启动不了 ES

第一次查docker ps启动了,第二次查的时候发现关闭了,docker logs elasticsearch

http://192.168.56.10:9200

数据挂载到外面,但是访问权限不足

把/mydata/elasticsearch下文件夹的权限设置好,上面已经设置过了

如果你使用的阿里云服务器,记得在安全组里面开放9200端口

Elastic search测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name": "566f1291aedb",
"cluster_name": "elasticsearch",
"cluster_uuid": "bap0P7JOQGy5hTBTxqS7kQ",
"version": {
"number": "7.4.2",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
"build_date": "2019-10-28T20:40:44.881551Z",
"build_snapshot": false,
"lucene_version": "8.2.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}

image-20210616230704179

显示elasticsearch 节点信息 http://192.168.56.10:9200/_cat/nodes

1
127.0.0.1 13 94 13 0.51 0.62 0.47 dilm * 566f1291aedb

② Kibana

启动kibana

1
2
3
4
5
6
# kibana指定了了ES交互端口9200  # 5600位kibana主页端口
# http://192.168.56.10:9200 一定改为自己虚拟机的地址
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 -d kibana:7.4.2

# 设置开机启动kibana
docker update kibana --restart=always

访问Kibana: http://192.168.56.10:5601/app/kibana

image-20210616231609090

image-20210616231759422

注意:

遇到了更新阿里源也下载不下来kibana镜像的情况,先在别的网络下载下来后传到vagrant中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker save -o kibana.tar kibana:7.4.2 

docker load -i kibana.tar

# 如何通过其他工具链接ssh

修改/etc/ssh/sshd_config
修改 PasswordAuthentication yes

systemctl restart sshd.service 或 service sshd restart

# 连接192.168.56.10:22端口成功,用户名root,密码vagrant

也可以通过vagrant ssh-config查看ip和端口,此时是127.0.0.1:2222

在安装离线docker镜像的时候还提示内存不足,看了下是因为外部挂载的内存也算在了vagrant中,即使外部删了很多文件,vagrant中df -h硬盘占用率也不下降。我在外部删完文件后在内部又rm -rf XXX 强行接触占用