【学习Docker(八)】Docker Canal的安装与卸载

news2024/9/22 21:24:36

座右铭:《坚持有效输出,创造价值无限》

最近想了解下canal,自行搭建并完成数据同步。经过了几天的踩坑之旅,今天终于搭建成功了。

环境:canalv1.1.5、MySQL8.0、JDK1.8

安装MySQL

创建存放目录

mkdir /docker-local
mkdir /docker-local/mysql8

之前安装过MySQL,但是没有配置conf,使用canal需要指定一个serveid

docker run --privileged=true -it \
	-p 3306:3306 --name mysql \
	-e MYSQL_ROOT_PASSWORD=123456 \
	-v /docker-local/mysql8/conf:/etc/mysql/conf.d \
	-v /docker-local/mysql8/data:/var/lib/mysql \
	-d mysql:8.0.26

编辑my.cnf

cd /docker-local/mysql8/conf
vim my.cnf
[mysqld]
server-id=1

保存,重启mysql

docker restart mysql

创建用户

创建用户,方便canal使用

CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

注意:安装canal还需要开启binlog,因为mysql8.0默认是开启的,并且是row模式,所以我这里没有其他操作。

安装canal

创建存放目录

mkdir docker-local/canal
cd /docker-local/canal/

拉取镜像

docker pull canal/canal-server:v1.1.5

运行

docker run --name canal -d canal/canal-server:v1.1.5

复制容器中的配置文件到本地

docker cp canal:/home/admin/canal-server/conf/canal.properties /docker-local/canal
docker cp canal:/home/admin/canal-server/conf/example/instance.properties /docker-local/canal

修改instance.properties

vim instance.properties

在这里插入图片描述

停止

docker stop canal && docker rm canal

重新运行

docker run --name canal -p 11111:11111 \
-v /docker-local/canal/instance.properties:/home/admin/canal-server/conf/example/instance.properties \
-v /docker-local/canal/canal.properties:/home/admin/canal-server/conf/canal.properties \
-v /docker-local/canal/log/:/home/admin/canal-server/logs/ \
-d canal/canal-server:v1.1.5

查看启动日志

cat log/canal/canal.log

在这里插入图片描述

cat /docker-local/canal/log/example/example.log

遇到的问题

connect /192.168.64.139:3306 failure

Caused by: java.io.IOException: connect /192.168.64.139:3306 failure

发现canal连不上mysql

修改firewalld配置文件

vim /etc/firewalld/zones/public.xml

增加3306端口

<port protocol="tcp" port="3306"/>

在这里插入图片描述

重启firewalld

systemctl restart firewalld

再次查看日志

在这里插入图片描述

部署成功

问题原因

在centos7上部署docker容器,其网络模式采用的是bridger模式。

启动docker时,docker进程会创建一个名为docker0的虚拟网桥,用于宿主机与容器之间的通信。当启动一个docker容器时,docker容器将会附加到虚拟网桥上,容器内的报文通过docker0向外转发。

如果docker容器访问宿主机,那么docker0网桥将报文直接转发到本机,报文的源地址是docker0网段的地址。而如果docker容器访问宿主机以外的机器,docker的SNAT网桥会将报文的源地址转换为宿主机的地址,通过宿主机的网卡向外发送。

当docker容器访问宿主机时,如果宿主机服务端口会被防火墙拦截,无法连通宿主机,出现No route to host的错误。

而访问宿主机所在局域网内的其他机器,由于报文的源地址是宿主机ip,因此,不会被目的机器防火墙拦截,所以可以访问。

也可以开放对应的端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

卸载canal

docker stop canal && docker rm canal
rm -rf /docker-local/canal

这里,我一直认为我本地可以连接到mysql,就不用开启端口了。
至此,就搭建完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯单片机第九届省赛编程题(深夜学习——单片机)

一、根据硬件框图初始化好要使用的外设推测出外设类型&#xff1a;PCF8591、矩阵按键、AT24C02、LED、数码管&#xff08;定时器&#xff09;创建工程模板&#xff1a;&#xff08;1&#xff09;主函数&#xff1a;#ifndef PBBLIC_H #define PBBLIC_H#include <STC15F2K60S2…

SpaceNet 建筑物检测

SpaceNet 建筑物检测 该存储库提供了一些 python 脚本和 jupyter 笔记本来训练和评估从SpaceNet卫星图像中提取建筑物的卷积神经网络。 用法

直播回顾 | 聚焦科技自立自强,Bonree ONE 助力国产办公自动化平稳替代

3月5日&#xff0c;两会发布《政府工作报告》&#xff0c;强调科技政策要聚焦自立自强。 统计显示&#xff0c;2022年金融信创项目数同比增长300%&#xff0c;金融领域信创建设当前已进入发展爆发期&#xff0c;由国有大型银行逐渐向中小型银行、非银金融机构不断扩展。信创云…

全生命周期的云原生安全框架

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/129423036 一、全生命周期的云原生安全框架 如图所示&#xff1a; 二、框架说明 在上图中&#xff0c;我们从两个维度描述各个安全机制&#xff0c;横轴是开发和运营阶段&#xff0c;细分为编码、测试…

Grial UI Kit updated Crack

Grial UI Kit updated Crack 增加了“电影”流&#xff0c;该流由3个屏幕组成&#xff0c;呈现平滑过渡和动画的电影目录。 添加了新的栅格导航栏控件&#xff0c;允许您使任何页面导航栏透明&#xff0c;也可以从带有实心导航栏的页面导航到带有透明导航栏的网页&#xff0c;反…

指针数组 数组指针 常量指针 指针常量 函数指针 指针函数

一、指针常量与常量指针 1、指针常量 本质上是一个常量&#xff0c;常量的类型是指针&#xff0c;表示该常量是一个指针类型的常量。在指针常量中&#xff0c;指针本身的值是一个常量&#xff0c;不可以改变&#xff0c;始终指向同一个地址。在定义的时候&#xff0c;必须要初…

npm安装依赖和package.json版本不一致解决

npm或者cnpm 安装依赖&#xff0c;不会完全按照package.json中的版本号来&#xff0c;会有稍微的差异&#xff0c;这样的差异可能导致项目起不来&#xff0c;或者报错&#xff0c; 因为某些包只有特定的版本才能正常运行。 解决方案 npm提供了shrinkwrap命令来解决这个问题。 …

opencv-图像几何处理

缩放 缩放只是调整图像的大小。为此&#xff0c;opencv提供了一个cv2.resize()函数&#xff0c;可以手动指定图像大小&#xff0c;也可以指定缩放因子。你可以使用任意一种方法调整图像的大小&#xff1a; import cv2 from matplotlib import pyplot as pltlogo cv2.imread(…

害我走了8年弯路,接口测试和性能测试的区别原来是这几点,终于点通了......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 性能测试和接口测试…

Allegro如何知道组合操作命令的拼写

Allegro如何知道组合操作命令的拼写 前面介绍了如何知道单个操作命令的拼写,但如果是复合命令,就无法直观的通过命令来了解,如下图 Snap Pick to -Segment这个命令拼写是什么 如何知道,具体操作如下 点击File点击Script 出现Scripting窗口

itextpdf生成报文总结

1.使用itextpdfgradle引入依赖compile ("com.itextpdf:itextpdf:5.5.13") compile ("com.itextpdf:itext-asian:5.2.0") compile ("com.itextpdf.tool:xmlworker:5.5.13")参考&#xff1a;https://www.cnblogs.com/ssslinppp/p/4976922.htmlhttp…

Linux性能补丁升级,避免不必要的跨核Wake-Up

导读一个由英特尔发起的、旨在改进Linux内核公平调度程序代码的补丁系列&#xff0c;也看到了来自AMD工程师和其他利益相关者的测试/反馈&#xff0c;并继续进行改进。这个补丁系列的重点是避免在不必要的情况下发生过多的跨核唤醒(Cross-CPU Wake-up)。这样一来&#xff0c;这…

Unity合批处理

一.静态合批标记为Batching Static的物体&#xff08;标记后物体运行不能移动、旋转、缩放&#xff09;在使用相同材质球的条件下在项目打包的时候unity会自动将这些物体合并到一个大Mesh*缺点打包后体积增大运行时内存占用增大二.动态批处理不超过300个顶点不超过900个属性不包…

手机通讯录--课后程序(Python程序开发案例教程-黑马程序员编著-第5章-课后作业)

实例2&#xff1a;手机通讯录 通讯录是记录了联系人姓名和联系方式的名录&#xff0c;手机通讯录是最常见的通讯录之一&#xff0c;人们可以在通讯录中通过姓名查看相关联系人的联系方式、邮箱、地址等信息&#xff0c;也可以在其中新增联系人&#xff0c;或修改、删除联系人信…

MySQL高级—约束与关系

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; 目录 一、约束 1.约束的基本概念 2.分类 二、关系 1.一对多 2.多对多 3.一对一 三、多表查询 1.多查 2.连接查询 3.子查询 一、约束 1.约束的基本概念 数据库的表示用来存储数据的&#xff0c;为了保证…

PID控制算法详解

1. 前言 PID 即 Proportional&#xff08;比例&#xff09;&#xff0c;Integral&#xff08;积分&#xff09;&#xff0c;Differential&#xff08;微分&#xff09;的英文缩写。顾名思义&#xff0c;PID 控制算法是结合比例&#xff0c;积分和微分三种环节于一体的自动控制…

cs231n计算机视觉课程-(数据驱动方法)

姿态、环境、遮挡这些问题算法都因该是robust 课程中提到具体写一个识别猫咪的算法是不稳定的&#xff0c;容易出错的。 所以提出了Data-Driven Approach的方法 一个是训练函数&#xff0c; 这函数接受图片和标签&#xff0c;然后输出标签 另一个则是预测函数&#xff0c;输…

团队管理的七个要点

要掌握团队管理的要点和做好团队管理工作&#xff0c;不是一件容易的事&#xff0c;但也远非想象中那么难。首先&#xff0c;我个人比较推荐所有团队管理者都能阅读下《经理人参阅&#xff1a;团队管理》&#xff08;注意该书仅可其官网获得&#xff09;这本佳作。相信会为你带…

vue ssr的hydration问题

我的网站百家饭OpenAPI平台是vuepress写的&#xff0c;前段时间我还写了个专栏讲了vuepress2.0教学。 最开始我们的网站是类似公司网站的情况&#xff0c;以介绍为主&#xff0c;后来又加了一个openapi编辑器&#xff0c;编辑器主要在一个页面里面&#xff0c;vuepress还勉强可…

【Springboot系列】Springboot接管所有Controller,magic-api源码阅读

系列文章地址&#xff1a;Spring Boot学习大纲&#xff0c;可以留言自己想了解的技术点 最近在项目中使用了一个第三方的包 magic-api&#xff0c;节省了很多的时间&#xff0c;整体来说就是只用写sql就好了&#xff0c;不用写service&#xff0c;controller那些&#xff0c;全…