We created this image to ease deployment of Apache Storm. More related main.resources:
- Our tutorial on how to use Storm with Docker Swarm
- the baqend/storm on Docker Hub
- the the baqend/storm on GitHub
The Docker image launches Apache Storm. By default, the
storm.local.hostname property is set already, but you have to provide all other arguments that you would normally provide.
No need for a
Storm allows you to provide any property via command line arguments like this:
bin/storm ui \ -c storm.local.hostname="nimbus"
You are not restricted to strings, but can also provide integer lists:
bin/storm supervisor \ -c supervisor.slots.ports="[6700,6701]"
Or lists of strings:
bin/storm supervisor \ -c storm.zookeeper.servers="[\"zk1\",\"zk2\",\"zk3\"]"
You can look up all the parameters in the source code.
Providing ZooKeeper the easy way
This image also lets you specify the ZooKeeper servers with a simple list (e.g.
"zk1,zk2,zk3") instead of the more verbose format Storm requires (e.g.
So if your ZooKeeper cluster is made up of
zk3, you can tell Storm to use this cluster by providing the following Docker environment variable:
Internally, this is passed to Storm as
The baqend/storm Docker image uses the following default values that can be overridden by providing the corresponding arguments in the
run statement (e.g.
-c nimbus.seeds="[\"nimbus\"]": is also overridden by
nimbus.host(depreciated since 1.0.0)
-c storm.local.hostname=<CONTAINER-ID>: by default, the image assigns the value
nimbusis provided as argument; the docker container ID is used as hostname else
-c supervisor.slots.ports="[6700,6701,6702,6703]": only when the
supervisorargument is provided
In consequence, only the ZooKeeper servers and the role argument (either
supervisor) have to be provided in a
docker run statement.
For an example of how we use this image, also see our tutorial on how to use Storm with Docker Swarm.