启动debezium前需要启动MySQL、Zookeeper、Kafak服务
这边演示的,已经把三个服务启动了

ip分别为:

主机名IP地址
zookeeper1192.168.8.101
zookeeper2192.168.8.102
zookeeper3192.168.8.103
mysql192.168.8.104
kafka1192.168.8.105
kafka2192.168.8.106
kafka3192.168.8.107

启动debezium

这里下载debezium/connector对应版本的镜像包来监控MySQL数据库

下载镜像包

docker pull debezium/connector:1.7.1.Final

运行镜像

本来:参考

docker run -it --rm --name connect -p 8083:8083 \-e GROUP_ID=1 \-e CONFIG_STORAGE_TOPIC=my_connect_configs \-e OFFSET_STORAGE_TOPIC=my_connect_offsets \-e STATUS_STORAGE_TOPIC=my_connect_statuses \--link kafka:kafka --link mysql:mysql \quay.io/debezium/connect:2.3

命令解析:

  • --name connect:指定启动的容器名称
  • -p 8083:8083:将容器中的8083端映射到Docker主机上的相同端口。这使得容器外的应用程序可以使用Kafka connect
    REST API来设置和管理新的容器实例
  • -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses: 设置镜像所需的环境变量
  • -link kafka:kafka --link mysgl:mysql :将容器链接到正在运行的KafkaMysQL容器。

docker run debezium连接外部的kafka:

docker run -it --rm \-e GROUP_ID=<your-group-id> \-e CONFIG_STORAGE_TOPIC=<your-config-storage-topic> \-e OFFSET_STORAGE_TOPIC=<your-offset-storage-topic> \-e BOOTSTRAP_SERVERS=<your-kafka-bootstrap-servers> \-e KAFKA_CONNECT_CLUSTER=<your-kafka-connect-cluster> \debezium/connect:<tag>请替换以下占位符:<your-group-id>: Debezium连接器的群组ID<your-config-storage-topic>: 存储连接器配置的主题。<your-offset-storage-topic>: 存储连接器偏移量的主题。<your-kafka-bootstrap-servers>: Kafka集群的引导服务器地址,例如kafka1:9092,kafka2:9092<your-kafka-connect-cluster>: Kafka Connect集群的URL<tag>: Debezium Docker镜像的版本标签。

docker run命令连接外部的MySQL:

docker run --rm \-e MYSQL_HOST=外部MySQL服务的IP地址 \-e MYSQL_PORT=3306 \-e MYSQL_USER=用户名 \-e MYSQL_PASSWORD=密码 \-e MYSQL_DB=数据库名称 \镜像名称在这个命令中,MYSQL_HOSTMYSQL_PORTMYSQL_USERMYSQL_PASSWORDMYSQL_DB环境变量分别设置为连接到外部MySQL服务所需的信息。镜像名称是你想要运行的Docker镜像的名称。

实际:

docker run -it --rm --name connect -p 8083:8083 \-e GROUP_ID=1 \-e CONFIG_STORAGE_TOPIC=my_connect_configs \-e OFFSET_STORAGE_TOPIC=my_connect_offsets \-e STATUS_STORAGE_TOPIC=my_connect_statuses \-e MYSQL_HOST=192.168.8.104 \-e MYSQL_PORT=3306 \-e MYSQL_USER=root \-e MYSQL_PASSWORD=root \-e MYSQL_DB=atguigu2022 \-e BOOTSTRAP_SERVERS=192.168.8.105:9092,192.168.8.106:9092,192.168.8.107:9092 \debezium/connect:1.7.1.Final

验证:参考