A Docker image and configuration for running Apache Kafka in containerized environments.
kafka-docker is a Docker-based project that provides pre-configured images and tools for running Apache Kafka in containerized environments. It solves the complexity of setting up and managing Kafka clusters by offering Docker Compose configurations, environment-based customization, and support for scaling and networking in Docker Swarm.
Developers, DevOps engineers, and data platform teams who need to deploy and manage Kafka clusters quickly using Docker, especially in development, testing, or production environments with container orchestration.
It simplifies Kafka deployment with out-of-the-box Docker support, flexible configuration via environment variables, and production-ready features like automatic topic creation, listener configuration, and broker rack awareness, reducing setup time and operational overhead.
Dockerfile for Apache Kafka
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Simplifies spinning up Kafka clusters with a single docker-compose up command, ideal for testing and development as shown in the Usage section.
Customize Kafka parameters like message size and auto-topic creation via environment variables (e.g., KAFKA_MESSAGE_MAX_BYTES), reducing manual config file edits.
Supports AWS metadata services for dynamic hostname and rack awareness using commands like HOSTNAME_COMMAND for EC2 instances, easing cloud deployments.
Includes automatic topic creation, listener configuration for Docker Swarm, and JMX monitoring setup, making it suitable for scaled environments.
The README admits connectivity issues and 'gotchas' with configuring networking, requiring careful setup for multi-broker or external access scenarios.
Default setup does not guarantee persistent broker IDs or ports on container restart, necessitating manual overrides like KAFKA_BROKER_ID for stable clusters.
Heavily relies on Docker and Docker Compose, making it less flexible for teams using Kubernetes or other orchestration tools without significant adaptation.