安裝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=我是程序員