CloudCanal社区版docker版安装(Linux/MacOS)
-
简述
本文档主要介绍如何在 Linux/MacOS 系统下,全新安装 CloudCanal。非 Linux/Unix 系列系统,高可用部署,版本升级请参考文章结尾 关联文章 章节。
请务必完整阅读本文,尤其是使用教程(必读)章节的内容,避免由于操作不当影响体验 CloudCanal。
安装步骤
1. 机器准备
- 操作系统: Ubuntu/CentOS/MacOS
- 硬件架构: x86 或 arm64,不支持 windows 的 linux 子系统
- CPU: 4核
- 内存: 8GB(推荐更大容量内存)
2. 环境准备
- CloudCanal 是一个分布式系统,故会占用 8111、9090、55000、25000、55005、7007 端口,部署前请确保这些端口未被其他应用占用
- 控制台请使用 chrome 浏览器访问,其他浏览器可能出现体验不畅等问题
3. 系统准备
clougence用户ulimit上限调整为102400
vi /etc/security/limits.d/20-nproc.conf ## 调节clougence用户的资源限制
4. docker 准备
-
如您的机器没有安装 docker ,请先安装(版本 17 以上,请勿使用过低版本的 docker )。
-
如您的机器没有安装 docker-compose 环境,请先安装。
- 官方文档指导安装: https://docs.docker.com/compose/install/#alternative-install-options
- 国内镜像站安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
-
如您的操作系统为 MacOS,请提前为 docker 分配内存
3.下载安装包
- 登录官方网站下载最新版本
4. 解压安装包
-
安装包为 cloudcanal.7z,包含了镜像和管理脚本
-
安装 7z 解压工具(如果已经安装,此步略过)
# 安装7z命令(centos系) yum -y install epel-release sudo yum install p7zip p7zip-plugins # 安装7z命令(ubuntu系) sudo apt-get install p7zip-full p7zip-rar # 安装7z命令(macOS) brew install 7z
-
进入安装包所在目录,解压缩
- 7z x cloudcanal.7z
-
解压目录如下,其中包括
- 镜像:包含四个 tar 压缩文件
- 脚本:启动、更新和停止,以及 scripts 运维脚本目录
- 日志与配置文件:日志为 docker-compose 启动日志,配置文件为 docker-compose 配置文件
[root@localhost tar]# ll -rw-------. 1 root root 862506496 Mar 25 11:47 console.tar -rw-r--r--. 1 root root 1392 Mar 25 12:07 docker-compose.yml -rw-------. 1 root root 454221312 Mar 25 11:47 mysql.tar -rw-------. 1 root root 174073344 Mar 25 11:49 prometheus.tar - drwxr-xr-x. 2 root root 124 Mar 25 12:05 scripts -rwxr-xr-x. 1 root root 63 Mar 25 12:05 shutdown.sh -rw-------. 1 root root 1231059968 Mar 25 11:48 sidecar.tar -rwxr-xr-x. 1 root root 2669 Mar 25 12:05 startup.sh -rwxr-xr-x. 1 root root 2031 Mar 25 12:05 upgrade.sh
5. 启动CloudCanal
- 执行启动命令:
sh startup.sh
- 当终端出现 cloudcanal start 时,即启动成功
6. 确认启动成功
- 启动过程将耗时 1 分钟左右,访问控制台
http://{您部署机器的ip}:8111
正确登录并开始操作
使用教程(必读)
- 为了方便您一开始快速体验 CloudCanal ,我们已自动帮您做好了一些初始化的工作
- 请务必使用提供的默认账号登入,方便您快速体验
- 用户名:test@clougence.com
- 密码:clougence2021
- 默认添加的测试 MySQL 数据库
- cloudcanal_test_a(源端)和cloudcanal_test_b(目标端)这两个库中已准备用于测试的表和数据
- 默认已添加了一台运行机器,用于执行具体的数据同步任务
- 如遇到需要发送短信的场景,先点击获取验证码,然后输入短信验证码 777777 即可
FAQ
我怎么访问 CloudCanal 元数据库?
- 在 docker 宿主机上执行执行命令
mysql -uclougence -h127.0.0.1 -P25000 -p123456
登录 - CloudCanal 元数据库名称为 cloudcana_console
我怎么查看相关日志?
- CloudCanal docker 版的日志路径在压缩包解压路径下。
- console日志: ${安装包解压路径}/console_data/logs/cloudcanal/console/console.log
- sidecar日志: ${安装包解压路径}/sidecar_data/logs/cloudcanal/sidecar/sidecar.log
- tasks日志: ${安装包解压路径}/sidecar_data/logs/cloudcanal/tasks/xxx.log
报错! mount through procfd: possibly malicious path detected
- 如果采用 virtual box 这样的虚拟机,使用docker时会遇到这样的问题。当前不支持在虚拟机上执行
报错! manifest for clougence not found manifest unknow
- 一般是没有正常安装镜像或者历史老版本残留数据影响导致,请先通过 scripts 中的 delete_all.sh 脚本清理镜像、容器、卷,然后再执行startup.sh脚本
报错Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD … Couldn’t load target ‘DOCKER’: No such file or directory
- 跟宿主机的iptable相关,如果之前对iptable进行过操作,需要重启docker服务。
数据源地址是 172.17 开头的网络的问题
- 原因描述
- 由于docker自身的容器默认网络docker0,它的默认网段是172.17.0.0/16,如果您的数据源刚好与它重合了,会导致连接不上数据源的情况,虽然这种情况很少见。由于我们CloudCanal容器版使用用docker创建的cloudcanal-network它的网段是172.33.238.0/24,docker为了隔离docker的各个bridge网络,彼此是ping不通的,即cloudcanal-network网络与docker0网络无法通信。请求连接数据源的地址如果刚好是172.17开头的,请求的数据包(由处于cloudcanal-network网络的sidecar发出),会被docker误以为是访问docker0网络的,也会被docker拦截下来。
- 解决方案
- 关闭正在运行的CloudCanal容器,然后修改docker0网段
vim /etc/docker/daemon.json
{
“bip”: “172.22.0.1/16”
}
- 关闭正在运行的CloudCanal容器,然后修改docker0网段
可以调节sidecar和console的内存吗?报错OOM怎么办?
登入sidecar和console各自的容器,修改脚本内JVM分配的堆大小即可,变量为:JVM_HEAP_SIZE_MB。
### sidecar启动脚本地址 /home/clougence/cloudcanal/sidecar/bin/startSidecar.sh ### console启动脚本地址 /home/clougence/cloudcanal/console/bin/startConsole.sh
Docker容器内无法访问外部网络 解决方案
两种可能的原因会造成Docker容器内无法访问外部网络:
- 容器使用了桥接网络但防火墙屏蔽了通信
/etc/sysctl.conf
系统配置参数问题
我碰到的情况属于第二种,配置参数问题,修正方法:
-
编辑
/etc/sysctl.conf
-
将其中的
net.ipv4.ip_forward=0
改成net.ipv4.ip_forward=1
。 -
重载配置,之后Docker的容器即可正常通信,如果不行,restart下容器。
sysctl -p
相关文档
- CloudCanal 社区版 docker 升级(Linux/MacOS)
- CloudCanal 社区版 docker 全新安装(Windows)
- CloudCanal 社区版 docker 高可用部署
- CloudCanal 社区版 docker 更换元数据库
- 5分钟搞定 MySQL 到 MySQL "异构"在线数据迁移同步
- 使用文档(SAAS版)
加入社区群
- CloudCanal 发展,离不开广大用户的支持,为了更好、更及时服务我们的用户,我们组建了微信交流群。请加我们的社群管理员吧,接头暗号:“加 cloudcanal 群”
-
下载最新的社区版安装包,启动的时候一直停留在这
begin to startup an cloudcanal.precheck before startup…
check_docker_is_installed…[ SUCCESS ],current docker version: Docker version 20.10.17, build 100c701
-
高可用部署时候,无法下载客户端,下载客户端 按钮是灰色的,无法点击
-
@清酒佳人 同样启动不来,有提示
ERROR: for mysql Cannot start service mysql: driver failed programming external connectivity on endpoint cloudcanal-mysql (6f235915cb2289b3d5bae561f63297d2ef23e1b5e1573895b37912ca09b80d82): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 25000 -j DNAT --to-destination 172.31.238.2:3306 ! -i br-7e58125a0023: iptables: No chain/target/match by that name.
(exit status 1)) -
startup.sh 执行后(五分钟)一直打印 Waiting for console to start,没看到启动成功的信息是怎么回事?
-
@cloudcanal-万少 多谢!
-
@羽客 x86架构,你公司的虚拟机也可以的~
-
请教,如果想安装cloudcanal,只能申请各大公有云的裸金属服务器,是这个意思吗?
-
@acer url地址把后面的login等内容去掉,直接输入http://${你部署的ip地址}:8111 这个问题我们新的版本已经修复,关注下我们即将release的1.1.0
-
用默认的账号登录一直跳转到登录界面,这是怎么回事?
我注册账号登录也是这样。。。 -
@神经蛙-0 这个是因为机器时区没设置导致,可以用1.0.3版本,注意要全新安装,否则docker file copy时区文件的操作不会执行。全新安装的话需要清理老环境。可以shutdown.sh执行后执行scripts/delete_all.sh 后续还有问题的话,可以提到问答区~
-
安装完成启动后,发现容器里面的时区不对,如何进行修改?
-
微信suhuayue001拉你进粉丝群,也可以扫描上面文章底部二维码
-
如果安装7z提示
没有可用软件包 p7zip。
没有可用软件包 p7zip-plugins。
wget -c http://mirrors.kernel.org/fedora-epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm