A Dockerfile for deploying a Storm cluster under supervision using Docker containers.
The image is registered to the Docker Index
Inspired by https://github.com/wurstmeister/storm-docker
- Install Docker
- Pull the Docker image :
docker pull fhuz/docker-storm
The image contains an ENTRYPOINT for running one container per storm daemon as follow:
docker run [OPTIONS] --link zookeeper:zk -d fhuz/docker-storm --daemon (nimbus, drpc, supevisor, ui, logviewer)
For instance to run a Nimbus :
docker run \
--name storm-nimbus -h nimbus \
--expose 6627 --expose 3772 --expose 3773 \
--link zookeeper:zk \
-d fhuz/docker-storm \
--daemon nimbus
Or you can checkout this minimal Makefile for directly building and deploying storm.
To rebuild the fhuz/docker-storm image just run :
make storm-build
Run the following commands to deploy/destroy your cluster.
make deploy-cluster
make destroy-cluster
Finally to sumbit a topology (without storm installed on your machine) :
docker run --rm --entrypoint storm \
-v <HOST_TOPOLOGY_TARGET_DIR>:/home/storm fhuz/docker-storm \
-c nimbus.host=`docker inspect --format='{{.NetworkSettings.IPAddress}}' storm-nimbus` jar <TOPOLOGY_JAR> <TOPOLOGY_ARGS>
Storm UI/Logviewer container ports are exposed to the host system :
- Storm UI : http://localhost:49002/
- Logviewer : http://localhost:49003/