RabbitMQ и Kafka — два популярных инструмента для обмена сообщениями в распределённых системах. Но их установка и настройка может занять часы. В этой статье мы поднимем оба брокера за считанные минуты с помощью Docker, разберём основные параметры и проверим, что всё работает.

В этой инструкции вы узнаете:

  • как развернуть RabbitMQ и Kafka в Docker за несколько минут;

  • какие параметры конфигурации нужны для базовой работы;

  • как проверить запуск и обмен сообщениями.

docker compose up -d

…и через пару минут у вас работают RabbitMQ и Kafka, готовые к тестам.

Поехали разбирать всё пошагово.

? Что тебе нужно

- Установленный Docker Desktop (Можно взять по ссылке https://www.docker.com/products/docker-desktop)
- Любой текстовый редактор (например, VS Code или Notepad++)
- Терминал (cmd, PowerShell, Terminal, Bash)

? Установка RabbitMQ

1. Запусти команду в терминале:
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=myuser -e RABBITMQ_DEFAULT_PASS=mypassword rabbitmq:3-management

Разберем каждую часть команды:

  • docker run — запускает новый контейнер из указанного образа.

  • -ddetached mode (отключённый режим).
    Контейнер запускается в фоне, и терминал не блокируется. Можно продолжать работать в командной строке.

  • --name rabbitmq — даёт контейнеру имя rabbitmq.
    Это удобно, чтобы потом ссылаться на контейнер по имени, а не по ID.

  • -p 5672:5672 — проброс порта из контейнера на хост.
    Формат: <хостовой порт>:<порт внутри контейнера>.
    Здесь порт 5672 (стандартный AMQP-порт RabbitMQ) внутри контейнера доступен на порту 5672 на хосте.

  • -p 15672:15672 — проброс порта для веб-интерфейса RabbitMQ Management (порт 15672).

  • rabbitmq:3-management — имя образа и тег версии.
    Здесь rabbitmq — имя образа, 3-management — тег (версия с включённым Management Plugin, то есть с веб-интерфейсом).

  • -e RABBITMQ_DEFAULT_USER=myuser — задаёт имя пользователя.

  • -e RABBITMQ_DEFAULT_PASS=mypassword — задаёт пароль.

    После запуска с такими параметрами в веб-интерфейсе и в подключениях будет использоваться именно этот логин и пароль.

    При этом пользователь guest будет работать. Но только внутри сети (начиная с версии RabbitMQ 3.3.0), снаружи не получится под ним подключаться.

2. Открой веб-интерфейс: http://localhost:15672 или http://<IP_хоста>:15672.

3. Логин и пароль по умолчанию:guest/guest.Но лучше подключаться под своим пользователем, которого указали в команде с настройкой -e.

☕ Установка Kafka и Kafka UI

1. Создай файл docker-compose.yml со следующим содержимым

Коротко о файле:

  • zookeeper — запускает ZooKeeper на 2181.

  • kafka — запускает Kafka, который зависит от ZooKeeper.

  • kafka-ui — веб-интерфейс для управления и мониторинга Kafka на порту 8080.

version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.6.0
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
    ports:
      - "2181:2181"

  kafka:
    image: confluentinc/cp-kafka:7.6.0
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092  # для работы внутри Docker
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

  kafka-ui:
    image: provectuslabs/kafka-ui
    ports:
      - "8080:8080"
    depends_on:
      - kafka
    environment:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092

2. Запусти в терминале из папки с файлом:

docker-compose up -d

3. Открой Kafka UI: http://localhost:8080 - это Kafka UI, где можно смотреть топики, сообщения, брокеров.

✅ Команды для управления контейнерами

Действие

Команда

Посмотреть запущенные

docker ps

Остановить контейнер

docker stop <имя>

Удалить контейнер

docker rm <имя>

Перезапустить все

docker-compose up -d

Остановить все

docker-compose down

Мы развернули RabbitMQ и Kafka в Docker, настроили их для базовой работы и проверили, что всё готово к использованию. Такой подход позволяет быстро поднимать окружение для тестов или обучения, не тратя время на сложную установку.

Дальше можно углубиться: подключить продвинутую конфигурацию, добавить мониторинг, или построить полноценный pipeline с использованием брокеров.

Комментарии (2)


  1. baldr
    08.08.2025 12:18

    Надо бы три раза подчеркнуть что конфигурацию в таком виде кроме как для одноразовых тестов использовать нельзя. Храни вас святой Нортон если вы решите использовать это на продакшене.

    Непонятно что за версии вы советуете использовать. Kafka последних версий не нуждается в Zookeeper.

    А почему имиджи из репозитории Confluent?

    А зачем нужен Docker Desktop?


  1. Unixfusion
    08.08.2025 12:18

    А можно добавить запуск с kraft? Зукипер малость устарел.