Running a Apache Cassandra Cluster with Docker-Swarm is quite easy using the official Docker Image. Docker-Swarm allows you to setup several docker worker nodes running on different hardware or virtual servers. Take a look at my example docker-compose.yml file:
version: "3.2"
networks:
cluster_net:
external:
name: cassandra-net
services:
################################################################
# The Casandra cluster
# - cassandra-node1
################################################################
cassandra-001:
image: cassandra:3.11
environment:
CASSANDRA_BROADCAST_ADDRESS: "cassandra-001"
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
window: 120s
placement:
constraints:
- node.hostname == node-001
volumes:
- /mnt/cassandra:/var/lib/cassandra
networks:
- cluster_net
################################################################
# The Casandra cluster
# - cassandra-node2
################################################################
cassandra-002:
image: cassandra:3.11
environment:
CASSANDRA_BROADCAST_ADDRESS: "cassandra-002"
CASSANDRA_SEEDS: "cassandra-001"
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
window: 120s
placement:
constraints:
- node.hostname == node-002
volumes:
- /mnt/cassandra:/var/lib/cassandra
networks:
- cluster_net
I am running each cassandra service on a specific host within my docker-swarm. We can not use the build-in scaling feature of docker-swarm because we need to define a separate data volume for each service. See the section ‘volumes’.
The other important part are the two environment variables ‘CASSANDRA_BROADCAST_ADDRESS’ and ‘CASSANDRA_SEEDS’.
‘CASSANDRA_BROADCAST_ADDRESS’ defines a container name for each cassandra node within the cassandra cluster. This name matches the service name. As both services run in the same network ‘cluster_net’ the both cassandara nodes find each user via the service name.
The second environment ‘CASSANDRA_SEEDS’ defines the seed node which need to be defined for the second service only. This is necessary even if a cassandra cluster is ‘master-less’.
That’s is!

Kubernetes is an container-orchestration system which helps you to automate your deployment, scaling and management of containerized applications. Originally this platform was designed by Google and is today part of the
In this tutorial I will try to figure out how the new
To setup a docker stack with Glassfish/Payara Server and a PostgreSQL Database Server is really easy, as the Payara project provides a good designed docker container. In the following short tutorial I will explain how to setup a simple development environment with a Glassfish/Payara server and a PostgreSQL Database.