使用 Docker 方式部署 Canal Server

参见:

https://github.com/alibaba/canal/wiki/Docker-QuickStart

获取 Docker

远程拉取

访问docker hub获取最新的版本 访问:https://hub.docker.com/r/canal/canal-server/tags/

下载对应的版本,比如最新版为 1.1.7

docker pull canal/canal-server:v1.1.7
本地编译
git clone git@github.com:alibaba/canal.git
cd canal/docker && sh build.sh

启动 Docker

docker目录下自带了一个run.sh脚本: https://github.com/alibaba/canal/blob/master/docker/run.sh

sh run.sh 
Usage:
  run.sh [CONFIG]
example:
  run.sh -e canal.instance.master.address=127.0.0.1:3306 \
         -e canal.instance.dbUsername=canal \
         -e canal.instance.dbPassword=canal \
         -e canal.instance.connectionCharset=UTF-8 \
         -e canal.instance.tsdb.enable=true \
         -e canal.instance.gtidon=false \
         -e canal.instance.filter.regex=.*\\..*

实际运行的例子:

# 下载脚本
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh 

# 构建一个destination name为test的队列
sh run.sh -e canal.auto.scan=false \
          -e canal.destinations=test \
          -e canal.instance.master.address=127.0.0.1:3306  \
          -e canal.instance.dbUsername=canal  \
          -e canal.instance.dbPassword=canal  \
          -e canal.instance.connectionCharset=UTF-8 \
          -e canal.instance.tsdb.enable=true \
          -e canal.instance.gtidon=false  \

注意点:

  • -e 参数里可以指定以前canal.properties/instance.properties里的所有配置的key和value,canal-server启动时会有限读取-e指定的变量,具体可参考AdminGuide
  • docker模式下,单docker实例只能运行一个instance,主要为配置问题。如果需要运行多instance时,可以自行制作一份docker镜像即可

运行效果

看到successful之后,就代表canal-server启动成功,可以启动 canal-client 链接上来进行 binlog 订阅了

作者:Jeebiz  创建时间:2023-05-29 09:51
最后编辑:Jeebiz  更新时间:2024-07-10 22:56