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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM