使用Docker部署Kafka

使用bitnami的kafka镜像,参考文档

单独拉取Kafka镜像

拉取镜像:

docker pull bitnami/kafka:2.4.1

通过这种方式只能获取到kafka镜像,由于kafka运行依赖zookeeper,所以你还得拉取一个zookeeper镜像。官方推荐使用docker compose同时管理kafka容器和zookeeper容器,所以单独拉取kafka镜像这一步可以跳过了,直接进入以下流程。

使用Docker Compose管理

下载docker-compose.yml:

curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-kafka/master/docker-compose.yml > docker-compose.yml

docker-compose.yml样本:

version: "2"

services:
  zookeeper:
    image: docker.io/bitnami/zookeeper:3.8
    ports:
      - "2181:2181"
    volumes:
      - "zookeeper_data:/bitnami"
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
  kafka:
    image: docker.io/bitnami/kafka:3.3
    ports:
      - "9092:9092"
    volumes:
      - "kafka_data:/bitnami"
    environment:
      - KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.7.253:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.7.253:9092
    depends_on:
      - zookeeper

volumes:
  zookeeper_data:
    driver: local
  kafka_data:
    driver: local

注意,这里的端口配置是用来进行端口映射的,不是用来指定容器内服务的端口的。比如zookeeper默认端口是2181,在默认的Bridge网络模式下,如果你想在宿主机使用2182端口,那就这样配置:2182:2181,2182:2182这种配置方式是不起作用的。

为什么要用docker compose?因为kafka依赖zookeeper,使用docker compose可以同时管理两者的容器。
下载docker compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

如果github下载太慢,可以用daocloud:

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

添加可执行权限:

sudo chmod +x /usr/local/bin/docker-compose

创建软连接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

查看版本,测试是否安装成功:

docker-compose --version

cd到上文下载的docker-compose.yml所在目录,构建镜像、创建容器、启动容器、并关联服务相关容器:

docker-compose up -d

你可能感兴趣的:(消息队列,docker,kafka)