Docker安装canal和Elasticsearch

安装canal

sudo docker pull canal/canal-server
sudo docker images

#启动镜像 
sudo docker run --name canal -d canal/canal-server
#进入容器 查看配置文件路径
sudo docker exec -it canal bash

#找到文件位置后 exit退出容器 将容器内部文件copy到外部
sudo docker cp canal:/home/admin/canal-server/conf/canal.properties /home/canal
sudo docker cp canal:/home/admin/canal-server/conf/example/instance.properties /home/canal

# 编辑instance.conf 其中需要修改以下
canal.instance.master.address=192.168.0.105:3306 # 数据库连接地址
canal.instance.dbUsername=root  # 数据库账号
canal.instance.dbPassword=123456  # 数据库密码

# 修改完成后,将之前的canal容器关闭,重新起一个新的容器.
#关闭容器
sudo docker stop canal

#移除容器
sudo docker rm canal

#启动新的 这里-v是将外部的文件挂载到容器内部 这样就不用每次启动都要配置参数了
sudo docker run --name canal -p 11111:11111 -d -v /home/canal/instance.properties:/home/admin/canal-server/conf/example/instance.properties -v /home/canal/canal.properties:/home/admin/canal-server/conf/canal.properties canal

安装Elasticsearch

sudo docker pull elasticsearch:5.6.8
sudo docker run -di --name=elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8

# 安装完成后可以在浏览器输入地址访问:http://192.168.211.132:9200/能看到一些es的信息

# 修改es配置开启远程连接
sudo docker exec -it elasticsearch /bin/bash
cd config/
apt-get update
apt-get install vim
vim elasticsearch.yml 

# 打开文件后放开这行注释
# transport.host: 0.0.0.0
# 同时添加一行
cluster.name: my-application

sudo docker restart elasticsearch # 重启容器

(4)系统参数配置**

重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以我们还需要系统调优

修改sudo vi /etc/security/limits.conf ,追加内容 (nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制 )

soft nofile 65536
hard nofile 65536

修改sudo vi /etc/sysctl.conf,追加内容 (限制一个进程可以拥有的VMA(虚拟内存区域)的数量 )

vm.max_map_count=655360

# 执行下面命令 修改内核参数马上生效
sudo sysctl -p

安装es-head插件

sudo docker pull docker.io/mobz/elasticsearch-head:5
sudo docker run -di --name=es-head -p 9100:9100 docker.io/mobz/elasticsearch-head:5

# 插件安装好后访问 http://192.168.0.105:9100/

(5)跨域配置

修改elasticsearch/config下的配置文件:elasticsearch.yml,增加以下三句命令,并重启:

http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 192.168.0.105

其中:
http.cors.enabled: true:此步为允许elasticsearch跨域访问,默认是false。
http.cors.allow-origin: "":表示跨域访问允许的域名地址(表示任意)。

安装ik分词

(1)安装ik分词器

IK分词器下载地址https://github.com/medcl/elasticsearch-analysis-ik/releases
将ik分词器上传到服务器上,然后解压,并改名字为ik
sudo unzip elasticsearch-analysis-ik-5.6.8.zip
sudo mv elasticsearch ik
将ik目录拷贝到docker容器的plugins目录下
sudo docker cp ./ik changgou_elasticsearch:/usr/share/elasticsearch/plugins
(2)IK分词器测试
访问:http://192.168.0.105:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员

posted @ 2021-01-05 22:18  LanceLi  阅读(1146)  评论(0编辑  收藏  举报