Apache Kafka, a distributed event streaming platform. Long-term tracks maintained by Canonical.
1M+
ubuntu/kafka is a rock for kafka maintained by Canonical.
Apache Kafka is an open-source distributed event streaming platform for high-performance data pipelines, streaming analytics and integrations.
Receives security updates and tracks the newest combination of Apache Kafka and Ubuntu. This repository is free to use and exempted from per-user rate limits.
To deploy a single-broker containerized Kafka, you need to first deploy the ZooKeeper service and make sure that the ZooKeeper service is reachable by Kafka.
First, create a network
docker network create -d bridge kafka-network
Deploy the ZooKeeper service
docker run --detach --name zookeeper --network kafka-network ubuntu/zookeeper:3.8-22.04_edge
Finally, deploy the Kafka service
docker run --detach --name kafka --network kafka-network -p 9092:9092 ubuntu/kafka:3.9-22.04_edge
To deploy a single-broker containerized Kafka, create a network first:
docker network create -d bridge kafka-network
Now, deploy the Apache Kafka service
docker run --detach \n --name kafka \n --network kafka-network \n -p 9092:9092 \n ubuntu/kafka:4.1-24.04_edge
To activate the Apache Kafka service, you need to format the logs directory
and grant its ownership to the kafka user:
docker exec kafka \n /opt/kafka/bin/kafka-storage.sh format \n --standalone \n --cluster-id $(cat /proc/sys/kernel/random/uuid | tr -d '-' | base64 | cut -b 1-22) \n -c /etc/kafka/server.properties
docker exec kafka chown -R kafka:kafka /tmp/kraft-combined-logs/
Please note that the images tagged up to 3.1 are Dockerfile-base images, whereas from version 3.6.1 onward the images are now rocks.
NOTE: These tags follow a specific naming convention that respects the concept of channels.
| Tags | Supported until | Version | Base | Architectures | |
|---|---|---|---|---|---|
3.1-22.04_beta | aliases3.1-22.04_edge, edge, latest | - | 3.1 | 22.04 | amd64, ppc64le, s390x, arm64 |
4.1-24.04_edge | aliases4.1-24.04_edge | 05/2029 | 4.1 | 24.04 | amd64 |
3.9.1-22.04_edge | aliases3.9-22.04_edge | 06/2027 | 3.9.1 | 22.04 | amd64 |
| Tags | Support ended on | Upgrade Path |
|---|---|---|
3.6-22.04_edge | 09/2024 | - |
This rock's entrypoint is Pebble, a container-optimized init process that enables the orchestration of a collection of local service processes as an organized set.
To view the Pebble services and checks defined in this rock:
docker run --rm ubuntu/kafka:3.6-22.04_edge plan
The container spins up with the default entrypoint. To inspect the entrypoint and command:
docker inspect --format='{{.Config.Entrypoint}} {{.Config.Cmd}}' ubuntu/kafka:3.6-22.04_edge
To run this rock, use any of the usual container runtimes, for example, docker:
docker run --name kafka-container \
-p 9092:9092 \
ubuntu/kafka:3.6-22.04_edge
Access the Apache Kafka server at localhost:9092.
docker run --name kafka-container \
-p 9092:9092 \
ubuntu/kafka:3.6-22.04_edge
Access the Apache Kafka server at localhost:9092.
To view the logs of the running container, run:
docker exec kafka-container pebble logs
Or, for a specific service:
docker exec kafka-container pebble logs <service>
To view the logs of the running container, run:
docker logs kafka-container
Rocks may have predefined health checks that you can list by running:
docker exec kafka-container pebble checks
The overall health of your container can be inspected via:
docker exec kafka-container pebble health
| Option | Description | Default |
|---|---|---|
TZ | Configure the container timezone value. | UTC |
ZOOKEEPER_HOST | Hostname for the related Zookeeper instance. Only used in Apache Kafka 3. | zookeeper |
ZOOKEEPER_PORT | Port for the related Zookeeper instance. Only used in Apache Kafka 3. | 2181 |
JAVA_HOME | Directory in which Java is installed. | /usr/lib/jvm/java-18-openjdk-amd64 |
| Option | Description | Default |
|---|---|---|
-v <path>:/etc/kafka/server.properties | Override Kafka server configuration file. | None |
-v <path>:/var/lib/kafka | Persist data mounted inside the container. The mount point should be consistent with the configuration property logs.dirs. | None |
| Option | Description | Default |
|---|---|---|
-p <port>:9092 | Expose the container's port 9092 on the host's <port>. | None |
Canonical is the provider of this container image. It is the user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within, as well as with Canonical’s IP Policy.
Content type
Image
Digest
sha256:a04e8d3c9…
Size
183.3 MB
Last updated
about 3 years ago
docker pull ubuntu/kafkaPulls:
29,446
Last week