用portainer部署kafka和zookeeper

1.创建docker集群。

1) #docker swarm  init --advertise-addr 10.0.0.211  (10.0.0.211修改为自己本机IP)

用portainer部署kafka和zookeeper_第1张图片

2) 创建一个网络

# docker network create --driver overlay --attachable db_net

2.安装portainer

1)创建目录/home/portainer

2.) 安装命令如下:

#docker service create \

    --name portainer \

    --publish 9000:9000 \

    --replicas=1 \

    --constraint 'node.role == manager' \

    --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \

    --mount type=bind,src=/home/portainer,dst=/data \

    portainer/portainer \

    -H unix:///var/run/docker.sock

   (其中红色字体src后面是刚才你创建的目录)

用portainer部署kafka和zookeeper_第2张图片

3)验证安装是否成功。

3.1)查看容器是否为UP状态。

3.2)web访问http://10.0.0.211:9000,提示创建一个管理账户,账户创建成功,就进入主界面。

用portainer部署kafka和zookeeper_第3张图片

4.安装zookeeper

1)创建3个目录文件,存放zookeeper的数据。

      mkdir -p /home/zoo1/data

      mkdir -p /home/zoo2/data

      mkdir -p /home/zoo3/data

2)拉去镜像:

      docker pull docker.io/zookeeper

3)配置文件

version: '3'
services:
    zoo1:
        image: zookeeper
        restart: always
        hostname: zoo1
        ports:
            - "2181:2181"
        volumes:
          - /home/zoo1/data:/data
        networks:
            - db_net
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
    zoo2:
        image: zookeeper
        restart: always
        hostname: zoo2
        ports:
            - "2182:2181"
        volumes:
          - /home/zoo2/data:/data
        networks:
            - db_net
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
 
    zoo3:
        image: zookeeper
        restart: always
        hostname: zoo3
        volumes:
          - /home/zoo3/data:/data
        ports:
            - "2183:2181"
        networks:
            - db_net
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
networks:
  db_net:
    external: true

4)部署设置

用portainer部署kafka和zookeeper_第4张图片

用portainer部署kafka和zookeeper_第5张图片

用portainer部署kafka和zookeeper_第6张图片

5)查看是否部署成功。

     如果部署成功,容器显示为running状态。

用portainer部署kafka和zookeeper_第7张图片

6)进入容器的控制台,zookeeper安装在目录/zookeeper-3.4.14。 

5. 安装kafka

   1)拉取镜像

        docker pull docker.io/wurstmeister/kafka

   2)配置文件

 注意:

1.    172.18.0.1是宿主机IP,是宿主机的网桥IP(docker-gwbridge),能ping通各个docker容器。

2.     端口,9091:9092 ,前面9091是宿主机端口,后面9092是docker容器中端口。

version: '3'
services:
    kafka1:
        image: wurstmeister/kafka
        restart: always
        hostname: kafka1
        ports:
            - "9091:9092"
        networks:
            - db_net
        environment:
          - KAFKA_BROKER_ID=1               
          - KAFKA_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2182,zoo3:2183
          - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9091
          - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
    kafka2:
        image: wurstmeister/kafka
        restart: always
        hostname: kafka2
        ports:
            - "9092:9092"
        networks:
            - db_net
        environment:
          - KAFKA_BROKER_ID=2               
          - KAFKA_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2182,zoo3:2183
          - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9092
          - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
    kafka3:
        image: wurstmeister/kafka
        restart: always
        hostname: kafka3
        ports:
            - "9093:9092"
        networks:
            - db_net
        environment:
          - KAFKA_BROKER_ID=3               
          - KAFKA_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2182,zoo3:2183
          - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9093
          - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
networks:
  db_net:
    external: true

3)配置设置(参考上面的zookeeper),然后部署。

用portainer部署kafka和zookeeper_第8张图片

4) 进入容器控制台,kafka 安装路径 /opt/kafka_2.12-2.2.0。

6.验证kafka收发消息。

  创建topic和查询topic。

    创建:./bin/kafka-topics.sh --create --zookeeper  zoo2:2181 --replication-factor 1 --partitions 1 --topic testtopic2

    查询: ./bin/kafka-topics.sh --list --zookeeper zoo1:2181

用portainer部署kafka和zookeeper_第9张图片

 

 

 

 

 

 

你可能感兴趣的:(docker)