【Docker基础一】Docker安装Elasticsearch,Kibana,IK分词器

安装elasticsearch 

下载镜像

查看版本:Elasticsearch Guide [8.11] | Elastic

# 下载镜像
docker pull elasticsearch:7.17.16
# 查看镜像是否下载成功
docker images

创建网络

因为需要部署kibana容器,要让es和kibana容器互联

# 创建一个网络:
docker network create es-net 
# 查看本机的网络 
docker network ls
# 删除一个网络
docker network rm es-net

创建容器挂载目录

# 创建挂载目录
mkdir -p /var/lib/docker/volumes/es-data/_data 
mkdir -p /var/lib/docker/volumes/es-plugins 
mkdir -p /var/lib/docker/volumes/es-config 
mkdir -p /var/lib/docker/volumes/kibana-config
# 进入es-config目录
cd /var/lib/docker/volumes/es-config 
# 创建文件
vi elasticsearch.yml 
# 键入‘’中内容: 
‘
 cluster.name: "docker-cluster" 
 network.host: 0.0.0.0
 ’ 
# 进入kibana-config目录
cd /var/lib/docker/volumes/kibana-config
# 创建文件
vi kibana.yml 
# 键入‘’中内容:其中es为es容器名
‘ 
server.host: "0.0.0.0" 
server.shutdownTimeout: "5s" 
elasticsearch.hosts: [ "http://es:9200" ] 
monitoring.ui.container.elasticsearch.enabled: true 
’

注意事项:

1)需要保证要挂载的目录有读写权限,包括要挂载的配置文件。如果没有则用chmod 777命令

2)如果要挂载配置文件,则需要提前把配置文件内容写好,不能为空,否则可能会影响es和kibana运行。

3)如果只挂载到配置文件目录,不准备配置文件,会导致创建容器后没有配置文件报错。

创建并启动容器

docker run -itd --name es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" -v /var/lib/docker/volumes/es-data:/usr/share/elasticsearch/data -v /var/lib/docker/volumes/es-plugins:/usr/share/elasticsearch/plugins --privileged --network es-net -p 9200:9200 -p 9300:9300 elasticsearch:7.17.16

注意:后面不要加 /bin/bash

命令解释:

-p 9200:9200

将容器9200端口映射到宿主机的9200端口,以后给ES发Rest API请求走9200

-p 9300:9300

ES在分布式集群状态下,它们节点之间的通信端口

-e "cluster.name=es-docker-cluster"

设置集群名称

-e "http.host=0.0.0.0"

监听的地址,可以外网访问

-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"

内存大小

-e "discovery.type=single-node"

非集群模式

-v /var/lib/docker/volumes/es-data/_data

挂载逻辑卷,绑定es的数据目录

-v /var/lib/docker/volumes/es-config/elasticsearch.yml

挂载逻辑卷,绑定es的配置文件

-v /var/lib/docker/volumes/es-plugins

挂载逻辑卷,绑定es的插件目录

-–privileged

授予逻辑卷访问权

-–network es-net

加入一个名为es-net的网络中

查看是否启动

docker ps

访问 http://localhost:9200,查看效果

开启es安全验证

# 进入到容器中 
docker exec -it es /bin/bash 
# cd到config目录下修改elasticsearch.yml,并放入以下内容: 
‘ 
# 这俩是跨域配置 
http.cors.enabled: true 
http.cors.allow-origin: "*" 
# 开启X-pack设置密码 
http.cors.allow-headers: 
Authorization xpack.security.enabled: true 
xpack.security.transport.ssl.enabled: true 
’

如果没有vi命令

apt-get update 
apt-get install vim

重启es

docker restart es

再次进入到容器中

# 进入容器 
docker exec -it es /bin/bash 
# 进入bin文件夹
cd bin/ 
# 创建用户,并赋予权限 
./elasticsearch-users useradd gusy -r superuser 
# 以交互的方式设置用户名和密码(记住自己设置的密码) 
./elasticsearch-setup-passwords interactive

重启es容器,再次访问 http://localhost:9200查看效果,此时需要输入密码

docker restart es

安装kibana

下载镜像

重要:与es版本要一致

# 下载镜像
docker pull kibana:7.17.16
# 查看是否下载成功
docker images

启动容器

docker run -itd --name kibana17 -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:7.17.16

命令解释:

-e ELASTICSEARCH_HOSTS=http://es:9200

其中'es'为es容器名称

进入kibana容器

-- 0表示root用户,'kibana17'为kibana容器名称
docker exec -u 0 -it kibana17 /bin/bash

配置容器

容器中执行以下命令

# 进入config目录
cd config 
# 编辑配置文件
vi kibana.yml 
# 键入es的用户名和密码(追加)
‘ 
elasticsearch.username: "gusy" 
elasticsearch.password: "gusy" 
’

重启kibana容器

docker restart kibana17

注意:如果改了配置文件导致重启失败,执行以下命令(逻辑:复制容器配置文件到宿主机,修改正确后重新复制到容器)

# 查看错误日志 
docker logs kibana17 -f 
# 复制配置文件到本地 (前为容器配置文件,后为宿主机目录)
docker cp kibana17:/usr/share/kibana/config/kibana.yml /usr/local/software/temp/ 
# 修改完配置后,再将配置复制到容器(前为宿主机文件,后为容器要替换的容器文件)
docker cp kibana.yml kibana17:/usr/share/kibana/config/kibana.yml 
# 重启容器 
docker restart kibana17

查看效果

访问kibana,http://localhost:5601

安装IK分词器

插件下载

下载链接:要与ES版本一致,下载.zip版本

Releases · medcl/elasticsearch-analysis-ik · GitHub

 插件安装

上传到服务器(windows到linux服务器)

scp .\elasticsearch-analysis-ik-7.17.16.zip root@127.0.0.1:/usr/local/software/temp

进入ES容器,在plugins文件夹下创建ik文件夹

# 进入容器 
docker exec -it es /bin/bash 
# 创建文件夹 
mkdir -p /usr/share/elasticsearch/plugins/ik 
# 退出容器 
exit

将ik.zip文件复制到es容器(前为宿主机文件地址,后为容器地址)

docker cp elasticsearch-analysis-ik-7.17.16.zip es:/usr/share/elasticsearch/plugins/ik

再次进入容器,解压上传的文件

# 进入容器 
docker exec -it es /bin/bash 
# 进入ik文件夹 
cd /usr/share/elasticsearch/plugins/ik/ 
# 解压 
unzip elasticsearch-analysis-ik-7.17.16.zip 
# 删除源文件 
rm -rf elasticsearch-analysis-ik-7.17.16.zip 
# 退出 
exit

重启es

docker restart es

注意:注意在plugins/文件夹下不要有文件,只能有文件夹,否则重启失败,并且重新复制plugins/文件夹也没用,可以尝试以下方法解决。

# 查看es挂载目录 
docker inspect es 
# 找到挂载目录,Mounts下 
# 进入es-plugins挂载的目录,删除掉多余的文件 
cd /var/lib/docker/volumes/es-plugins/_data

查看效果

访问kibana,http://localhost:5601,首页-management-Dev-tools

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤安装Elasticsearchik分词器: 1. 首先安装DockerDocker Compose,可以参考官方文档进行安装。 2. 在本地创建一个文件夹,例如命名为 `elasticsearch`。 3. 在 `elasticsearch` 文件夹下新建一个 `docker-compose.yml` 文件,写入以下内容: ``` version: '3.7' services: elasticsearch: image: elasticsearch:7.9.3 container_name: elasticsearch environment: - discovery.type=single-node - ES_JAVA_OPTS=-Xms512m -Xmx512m ports: - 9200:9200 - 9300:9300 volumes: - ./data:/usr/share/elasticsearch/data ``` 这里使用的是 Elasticsearch 7.9.3 版本,可以根据需要进行修改。 4. 在 `elasticsearch` 文件夹下新建一个 `data` 文件夹,用于存储 Elasticsearch 的数据。 5. 在 `elasticsearch` 文件夹下新建一个 `Dockerfile` 文件,写入以下内容: ``` FROM elasticsearch:7.9.3 RUN elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip ``` 这里使用的是 Elasticsearch 7.9.3 版本和 ik 分词器 7.9.3 版本,可以根据需要进行修改。 6. 在终端进入 `elasticsearch` 文件夹,执行以下命令启动 Elasticsearch: ``` docker-compose up -d ``` 等待一段时间,可以通过访问 `http://localhost:9200/` 来验证 Elasticsearch 是否启动成功。 7. 如果需要在代码中使用 ik 分词器,需要在代码中添加以下依赖: ``` <dependency> <groupId>org.elasticsearch.plugin</groupId> <artifactId>analysis-ik</artifactId> <version>7.9.3</version> </dependency> ``` 然后在代码中使用 `IKAnalyzer` 来进行分词。 ``` Analyzer analyzer = new IKAnalyzer(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值