Public | Automated Build

Last pushed: 2 years ago
Short Description
Cassandra images optimized for fast startup
Full Description

Cassandra in Docker

This repository provides everything you need to run Cassandra in Docker, and is tuned for fast
container startup.

Why?

While naive Cassandra images take around 30 seconds to start, our containers take only a few seconds.
Optimizations include:

  • Disabling vnodes. We don't use them at Spotify, and Cassandra starts much faster without them
    (~10 sec).
  • Disabling something called "waiting for gossip to settle down" because there is no gossip in a
    one-node cluster (another ~10 sec).

In the box

  • spotify/cassandra

    This is probably the image you want, it runs a one-node Cassandra cluster.
    Built from the cassandra directory.

  • spotify/cassandra:cluster

    Runs a Cassandra cluster. Expects CASSANDRA_SEEDS and CASSANDRA_TOKEN env variables to be set.
    If CASSANDRA_SEEDS is not set, node acts as its own seed. If CASSANDRA_TOKEN is not set, the
    container will not run. Built from the cassandra-cluster directory.

  • spotify/cassandra:base

    The base image with an unconfigured Cassandra installation. You probably don't want to use this
    directly. Built from the cassandra-base directory.

Notes

Things are still under heavy development:

  • Only Cassandra 2.0 with almost-generic config (miles away from what we actually run Cassandra
    with) is supported so far.
  • There's nothing to help you with tokens and stuff.
Docker Pull Command
Owner
spotify
Source Repository

Comments (2)
mcgregorandrew
6 months ago

I tried running this as:
docker run --name cass2 -d -p 7199:7199 -p 9160:9160 -p 9042:9042 spotify/cassandra

But when I try to connect with cql, I get:

Connection error: ('Unable to connect to any servers', {'172.17.0.3': DriverException('ProtocolError returned from server while using explicitly set client protocol_version 4',)})

This might get getting a bit old...

moonsyim
2 years ago

Hello

seriously I'd like to make 4 nodes Cassandra cluster on 2 servers like

1st Server : Container A, Container B

2st Server : Container C, Container D

Container A, Container C are seed node.

I'd like to make

Container A is linked (bridge) to 1st host eth0

Container B is linked (bridge) to 1st host eth1

Container C is linked (bridge) to 2nd host eth0

Container D is linked (bridge) to 2nd host eth1

but it looks like

Container A, B links to 1st node's eth0 all.

Container C, D links to 2nd node's eth0 all.

–net=host is not good option to me.

Do you have any good suggestion for 4 nodes (4 container) Cassandra cluster on 2 servers ?