Docker image based on openjdk:8-jre-alpine
The image provides a clusterable Kafka broker.
As a minimum the following environment variables must be set:
KAFKA_BROKER_ID
KAFKA_ADVERTISED_HOST_NAME
KAFKA_ZOOKEEPER_CONNECT
So, assuming your Docker host is 172.17.8.101
, has Zookeeper running and should now run Kafka as well, execute the following:
docker run -d -e KAFKA_BROKER_ID=1 -e KAFKA_ADVERTISED_HOST_NAME=172.17.8.101 -e KAFKA_ZOOKEEPER_CONNECT=172.17.8.101 digitalwonderland/kafka
(if you are looking for a clusterable Zookeeper Docker image, feel free to use digitalwonderland/zookeeper)
Configuration parameters can be provided via environment variables starting with KAFKA_
. Any matching variable will be added to Kafkas server.properties
by
- removing the
KAFKA_
prefix - transformation to lower case
- replacing any occurences of
_
with.
For example an environment variable KAFKA_NUM_PARTITIONS=3
will result in num.partitions=3
within server.properties
.
Any environment variable starting with KAFKA_
and ending with _COMMAND
will be first evaluated and the result saved in an environment variable without the trailing _COMMAND
.
For example an environment variable KAFKA_ADVERTISED_HOST_NAME_COMMAND=hostname
will export KAFKA_ADVERTISED_HOST_NAME
with the value obtained by running hostname
command inside the container.