保姆级教程:在Ubuntu 22.04上,用Docker一步搞定CloudCanal社区版部署(附端口占用排查)

张开发
2026/4/19 16:46:17 15 分钟阅读

分享文章

保姆级教程:在Ubuntu 22.04上,用Docker一步搞定CloudCanal社区版部署(附端口占用排查)
保姆级教程在Ubuntu 22.04上用Docker一步搞定CloudCanal社区版部署附端口占用排查在数据同步和ETL工具领域CloudCanal凭借其开箱即用的特性逐渐成为开发者们的新宠。特别是对于需要频繁进行数据库迁移、实时数据同步的团队来说能够快速搭建一个稳定运行的CloudCanal环境至关重要。本教程将带你从零开始在Ubuntu 22.04系统上通过Docker完成CloudCanal社区版的完整部署同时针对实际部署中最常见的端口冲突问题提供详细的排查方案。1. 环境准备与系统检查在开始部署之前我们需要确保系统环境满足CloudCanal的基本要求。不同于泛泛而谈的系统需求这里我们特别针对Ubuntu 22.04进行优化配置。首先检查系统架构和资源情况# 检查系统架构 uname -m # 查看CPU核心数 nproc # 查看内存大小 free -hCloudCanal社区版对硬件的基本要求如下组件最低配置推荐配置CPU2核4核内存4GB8GB磁盘空间20GB50GB注意虽然CloudCanal官方支持多种Linux发行版但在Ubuntu 22.04上表现最为稳定。避免在WSL或虚拟机环境中部署可能遇到不可预知的问题。接下来处理系统依赖项这些往往是部署失败的隐藏杀手# 更新软件包索引 sudo apt-get update # 安装基础依赖 sudo apt-get install -y ca-certificates curl gnupg lsb-release2. Docker环境精准配置CloudCanal完全基于Docker运行因此需要确保Docker环境配置正确。不同于简单的安装我们需要关注版本兼容性和后续维护便利性。Docker引擎安装官方推荐方式# 添加Docker官方GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置稳定版仓库 echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin验证Docker安装是否成功sudo docker run --rm hello-world版本兼容性特别说明Docker 17.x 系列基本可用但可能遇到网络配置问题Docker 18.x-20.x 系列最佳选择Docker 最新版可用但建议等待CloudCanal官方适配配置Docker开机自启和当前用户免sudosudo systemctl enable docker sudo usermod -aG docker $USER newgrp docker # 立即生效3. 获取并解压CloudCanal安装包CloudCanal社区版通过压缩包分发我们需要从官方源获取最新版本并正确解压。下载安装包国内用户推荐使用阿里云OSS镜像# 创建安装目录 mkdir -p ~/cloudcanal cd ~/cloudcanal # 下载最新版示例链接请替换为实际最新版 wget https://cloudcanal-community.oss-cn-hangzhou.aliyuncs.com/latest/cloudcanal.7z安装解压工具并解压# 安装7z解压工具 sudo apt-get install -y p7zip-full # 解压安装包 7z x cloudcanal.7z解压后的目录结构解析cloudcanal/ ├── console.tar # 控制台镜像 ├── docker-compose.yml # 编排配置文件 ├── mysql.tar # MySQL镜像 ├── prometheus.tar # 监控镜像 ├── scripts/ # 运维脚本目录 ├── shutdown.sh # 停止脚本 ├── startup.sh # 启动脚本 ├── sidecar.tar # Sidecar镜像 └── upgrade.sh # 升级脚本4. 端口占用排查与解决方案端口冲突是部署失败的首要原因。CloudCanal默认使用以下端口端口服务说明8111Web控制台必须对外开放9090Prometheus监控指标收集55000Sidecar数据传输25000MySQL内置数据库55005Sidecar管理内部通信全面端口检查方案# 检查单个端口是否被占用以8111为例 sudo lsof -i :8111 # 或者使用netstat sudo netstat -tulnp | grep 8111 # 批量检查所有关键端口 for port in 8111 9090 55000 25000 55005; do echo 检查端口 $port: sudo lsof -i :$port || echo 端口可用 done如果发现端口被占用你有三个选择停止占用服务推荐用于测试环境# 找到占用进程ID sudo lsof -i :8111 # 停止该进程 sudo kill -9 PID修改CloudCanal端口生产环境推荐 编辑docker-compose.yml找到对应服务的端口映射部分修改例如ports: - 8112:8111 # 将外部访问端口改为8112配置防火墙规则高级用户# 开放特定端口以8111为例 sudo ufw allow 8111/tcp5. 启动与验证服务一切准备就绪后可以启动CloudCanal服务了。启动过程大约需要1-2分钟取决于机器性能。标准启动流程# 进入解压目录 cd ~/cloudcanal # 授予执行权限 chmod x *.sh # 启动服务 ./startup.sh启动成功后你会在日志中看到类似输出[INFO] Starting CloudCanal containers... [SUCCESS] CloudCanal started successfully! Access URL: http://your-server-ip:8111验证服务健康状态的三种方法容器状态检查docker ps -a --filter namecloudcanal预期应该看到5个容器console、mysql、prometheus等状态为Up日志检查docker logs cloudcanal_consoleAPI健康检查curl -I http://localhost:8111/api/health应该返回HTTP 200状态码6. 访问控制台与初始配置服务启动成功后可以通过浏览器访问控制台http://你的服务器IP:8111使用以下默认凭证登录用户名testclougence.com密码clougence2021初始环境已包含的便利配置预配置的测试MySQL数据源cloudcanal_test_a和cloudcanal_test_b内置的同步任务执行机器测试用的短信验证码777777开发环境专用首次登录后建议操作立即修改管理员密码检查系统设置中的网络配置验证预置数据源连接状态7. 常见问题与快速排错即使按照教程操作仍可能遇到一些典型问题。以下是快速诊断方法问题1启动时报端口冲突解决方案使用./shutdown.sh停止服务按照第4节重新检查端口修改docker-compose.yml中的端口映射重新执行./startup.sh问题2控制台无法访问排查步骤# 1. 检查防火墙 sudo ufw status # 2. 检查容器是否运行 docker ps # 3. 检查控制台日志 docker logs cloudcanal_console问题3MySQL连接失败内置MySQL的访问方式mysql -uclougence -P25000 -p123456 -h127.0.0.1如果连接失败检查mysql容器是否正常运行。问题4磁盘空间不足CloudCanal运行后可能占用较大空间定期检查df -h docker system df清理无用镜像和容器docker system prune -f8. 生产环境优化建议当CloudCanal用于生产环境时需要考虑更多稳定性与安全性因素性能调优参数 在docker-compose.yml中适当调整以下参数environment: - JAVA_OPTS-Xms4g -Xmx4g # 根据机器内存调整数据持久化配置 默认数据存储在容器内重启会丢失。建议挂载卷volumes: - ./data/mysql:/var/lib/mysql - ./logs:/opt/cloudcanal/logs定期备份策略备份MySQL数据docker exec cloudcanal_mysql mysqldump -uclougence -p123456 --all-databases backup.sql备份配置文件cp docker-compose.yml docker-compose.yml.bak监控集成 Prometheus监控已内置可通过以下地址访问http://your-server-ip:9090配置Grafana展示监控数据需额外安装下载CloudCanal提供的Grafana仪表板模板导入到你的Grafana实例中9. 升级与维护当有新版本发布时升级流程如下# 1. 下载新版安装包 wget https://cloudcanal-community.oss-cn-hangzhou.aliyuncs.com/latest/cloudcanal.7z # 2. 解压到新目录 mkdir ~/cloudcanal_new cd ~/cloudcanal_new 7z x ../cloudcanal.7z # 3. 执行升级 ./upgrade.sh升级脚本会自动处理停止并删除旧容器清理旧镜像启动新版本服务数据迁移注意事项升级前备份重要数据检查版本变更说明了解不兼容变更建议在低峰期进行升级操作

更多文章