4.3

Kafka docker box


View on GitHub
docker pull lensesio/box

What is the Lenses Box? 

Lenses Box is a docker image that provides a full installation of Apache Kafka with all relevant components.

Kafka docker dev box

What’s in the Box? 

Lenses Box contains all components of the Apache Kafka eco-system, CLI tools and synthetic data streams:

SoftwareVersion
Apache Kafka2.5.1
Kafka Connect2.5.1
Elasticsearch6.8.7
Lenses.io4.1.0

To learn more check out this 3-minute tour

Get started 

1. To start with Box get your free development license online.

2. Install docker

Before you get started you will need to install Docker . This Kafka docker container will work even on a low memory 8GB RAM machine.

3. Run the docker

docker run --rm \
    -p 3030:3030 \
    --name=dev \
    --net=host \
    -e EULA="https://dl.lenses.stream/d/?id=CHECK_YOUR_EMAIL_FOR_KEY" \
    lensesio/box

Note that the value of the --name parameter can be anything you want. Just remember to replace dev with your own value in the docker exec commands found in this page. Kafka Connect requires a few minutes to start up since it iterates and loads all the available connectors.

You can also periodically upgrade to the latest versions with:

  $ docker pull lensesio/box

Development experience 

To access the Kafka docker web user interface, open your browser and navigate to http://localhost:3030

Login with admin / admin.

DataOps and Kafka UI

If interested to learn Kafka or to quick start and create topics , view consumer groups or monitor kafka visit the user guide.

Access the command line 

To access the various Kafka command-line tools, such as the console producer and the console consumer, from a terminal in the Docker container, you should execute the following command:

docker exec -it dev bash
root@fast-data-dev / $ kafka-topics --zookeeper localhost:2181 --list

Alternatively, you can directly execute a Kafka command such as kafka-topics as follows:

docker exec -it dev kafka-topics --zookeeper localhost:2181 --list

Kafka docker advertisement 

The broker in the Kafka docker has a broker id 101 and advertises the listener configuration endpoint to accept client connections.

If you run Docker on macOS or Windows, you may need to find the address of the VM running Docker and export it as the advertised listener address for the broker (On macOS it usually is 192.168.99.100). At the same time, you should give the lensesio/box image access to the VM’s network:

docker run -e EULA="CHECK_YOUR_EMAIL_FOR_KEY" \
           -e ADV_HOST="192.168.99.100" \
           --net=host --name=dev \
           lensesio/box

If you run on Linux you don’t have to set the ADV_HOST but you can do something cool with it. If you set it to be your machine’s IP address you will be able to access Kafka from any clients in your network.

If you decide to run box in the cloud, you (and all your team) will be able to access Kafka from your development machines. Remember to provide the public IP of your server as the kafka advertised host for your producers and consumers to be able to access it.

Kafka docker JMX 

Kafka JMX metrics are enabled by default. Refer to ports . Once you expose the relevant port ie. -p 9581:9581 you can connect to JMX with

jconsole localhost:9581

Custom hostname 

If you are using docker-machine or setting this up in a Cloud or DOCKER_HOST is a custom IP address such as 192.168.99.100, you will need to use the parameters --net=host -e ADV_HOST=192.168.99.100.

docker run --rm \
    -p 3030:3030 \
    --net=host \
    -e ADV_HOST=192.168.99.100 \
    -e EULA="https://dl.lenses.stream/d/?id=CHECK_YOUR_EMAIL_FOR_KEY" \
    lensesio/box

Docker data persistence 

To persist the Kafka data between multiple executions, provide a name for your Docker instance and do not set the container to be removed automatically (--rm flag). For example:

docker run \
    -p 3030:3030 -e EULA="CHECK_YOUR_EMAIL_FOR_KEY" \
    --name=dev lensesio/box

Once you want to free up resources, just press Control-C. Now you have two options: either remove the docker:

docker rm dev

Or use it at a later time and continue from where you left off:

docker start -a dev

Port numbers 

ServicePort number
Kafka broker9092
Kafka broker (ssl)9093
Kafka connect8083
Zookeeper2181
Schema Registry8081
Lenses3030
Elasticsearch9200
Kafka broker JMX9581
Schema registry JMX9582
Kafka connect JMX9584
Zookeeper JMX9585

Advanced Options 

VariableDescription
ADV_HOST=[ip-address]The ip address that the broker will advertise
DEBUG=1Prints all stdout and stderr processes to container’s stdout for debugging.
DISABLE_JMX=1Disables exposing JMX metrics on Kafka services.
ELASTICSEARCH_PORT=0Will not start Elasticsearch.
ENABLE_SSL=1Creates CA and key-cert pairs and makes the broker also listen to SSL://127.0.0.1:9093
KAFKA_BROKER_ID=1Overrides the broker id (the default id is 101).
SAMPLEDATA=0Disables the synthetic streaming data generator that are running by default.
SUPERVISORWEB=1Enables supervisor interface on port 9001 (adjust via SUPERVISORWEB_PORT) to control services.
Contents