docker+mysql+canal+kafka环境搭建

docker+mysql+canal+kafka环境搭建

软件版本

macOS 11.4
Docker version 20.10.7
canal-admin v1.1.5
canal-server v1.1.5
mysql 5.7
mysql 8
wurstmeister/kafka 2.13-2.7.0
zookeeper 3.6.3

docker常用命令

docker官方安装地址

  • 查询容器(加上-a可以查询所有容器,包括失败容器)
docker ps
  • 进入容器
docker exec -it mysql bash
  • 查看所有容器的IP
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

Mysql配置

mysql5.7

1)、docker容器运行(此步骤只是先将容器配置以及数据复制到宿主机)

docker run -d --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

2)、拷贝容器配置及数据

\\ 需先建立目录
mkdir /docker/mysql/5.7/data
mkdir /docker/mysql/5.7/conf
\\ 拷贝数据(这是mysql的表数据以及日志数据)
docker cp mysql5.7:/var/lib/mysql  ~/docker/mysql/5.7/data
\\ 拷贝配置文件
docker cp mysql5.7:/etc/mysql  ~/docker/mysql/5.7/conf

3)、删除容器

docker stop mysql5.7
docker rm mysql5.7

4)、运行加了容器卷映射的容器(注意这里容器卷的映射和上面拷贝的地址是不一样的,多加了一层目录)。这里制定了root账户的密码是123456

docker run  \
-d  \
--name mysql5.7 \
-p 3306:3306  \
-v ~/docker/mysql/5.7/data/mysql:/var/lib/mysql  \
-v ~/docker/mysql/5.7/conf/mysql:/etc/mysql  \
-e MYSQL_ROOT_PASSWORD=123456  \
mysql:5.7

5)、修改配置,开启binlog,以row形式进行增量记录

修改 /home/docker/mysql/5.7/conf/mysql下的my.cnf、mysql.cnf、mysql.conf.d下的或者conf.d下的任一文件。server-id需在mysql中保持唯一

log-bin=/var/lib/mysql/mysql-bin
server-id=123454
binlog-format=ROW

如上面配置未生效,可执行命令修改

docker exec mysql5.7 bash -c "echo 'log-bin=/var/lib/mysql/mysql-bin' >> /etc/mysql/mysql.conf.d/mysqld.cnf"
docker exec mysql5.7 bash -c "echo 'server-id=123454' >> /etc/mysql/mysql.conf.d/mysqld.cnf"

6)、重启容器

docker restart mysql5.7

7)、连接mysql,在mysql中执行下列脚本。查看容器是否开启binlog(为NO则为开启,OFF为没开启)

mysql -uroot -p
SHOW  GLOBAL VARIABLES LIKE '%log_bin%';

7)、添加canal用户

#更新一下用户密码,这里是把账户为canal的密码修改为使用mysql_native_password规则生成,密码为canal。
ALTER USER 'canal'@'%' IDENTIFIED WITH mysql_native_password BY 'canal'; 
#刷新权限
FLUSH PRIVILEGES;

kafka

先启动zookeeper

docker run -d --name zookeeper -p 2181:2181 zookeeper:3.6.3

启动kafka

docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper的ip:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://当前主机的ip:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:2.13-2.7.0

canal-server

canal-server是真正工作的。是将自己伪装成mysql的从库去获取mysql的binlog并解析,可以自己选择是tcp, kafka, rocketMQ, rabbitMQ这几种中选择一种方式推送解析后的日志数据。我这里选择的是kafka,因为kafka的吞吐量是在mq中是最好的。

启动canal-server

docker run  \
-d  \
-e canal.instance.master.address=mysql的ip:3306 \
-e canal.instance.dbUsername=canal \
-e canal.instance.dbPassword=canal \
--name canal-server  \
-p 11111:11111 \
 canal/canal-server:v1.1.5

修改配置

server配置文件/canal-server/conf/canal.properties

# tcp, kafka, rocketMQ, rabbitMQ
canal.serverMode = kafka
kafka.bootstrap.servers = kafka的ip:9092

instance配置文件/canal-server/conf/example/instance.properties

canal.instance.master.address=数据库的ip:3306
canal.instance.dbUsername=数据库连接名
canal.instance.dbPassword=数据库连接密码

这里环境就搭建完成了

kafka使用本文参考该文章完成

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用中的内容,搭建Docker Rancher环境的步骤如下: 1. 准备工作,包括安装apt-get和ssh,修改下载源地址。 2. 安装Docker,并使用Docker安装MySQL和Rancher。 3. 进行Docker的操作,包括镜像操作和卸载Docker。 4. 连接到不同的镜像仓库,包括Docker官方的镜像仓库和阿里云镜像仓库。 根据引用中的内容,在搭建Rancher环境之前,需要规划好两台服务器的IP地址,并在其中一台服务器上安装Rancher和Docker,在另一台服务器上安装DockerDocker-compose。 根据引用中的内容,搭建Rancher环境的具体步骤如下: 1. 在已安装Docker的基础上启动Rancher服务器。Rancher服务器是一个Docker镜像,因此不需要额外安装软件,只需执行Docker命令下载并成功运行Rancher服务器镜像。 2. 启动容器并指定端口,如果没有rancher/server镜像,会自动下载。可以通过执行命令docker run -d --restart=always -p 8080:8080 rancher/server来查看镜像和容器的运行情况。 综上所述,搭建Docker Rancher环境的步骤包括准备工作、安装Docker、安装MySQL和Rancher、进行Docker操作、连接到不同的镜像仓库以及启动Rancher服务器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker+rancher环境搭建及rancher的使用](https://blog.csdn.net/qq_42268472/article/details/126798628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Docker+Rancher+Harbor搭建全过程](https://blog.csdn.net/sql_ican/article/details/81945023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值