'How to access a Cassandra docker volume in a new container?

After update my Cassandra docker container it raised the following error:

CassandraDaemon.java:911 - Fatal configuration error org.apache.cassandra.exceptions.ConfigurationException: Cannot change the number of tokens from 256 to 16

I am using cassandra:latest image, and probably its updated its version, and after that the server shutdown every time I try to run it again. Any thoughts?



Solution 1:[1]

The user asked the same question on https://community.datastax.com/questions/13536/ and I'm re-posting my answer here.


We do not recommend updating a Cassandra container to a newer version. Cassandra 4.0+ is pre-configured with a new default of 16 virtual nodes (CASSANDRA-13701):

num_tokens: 16

Older versions of Cassandra had a default of 256. It is not possible to change the number of tokens allocated to a node once Cassandra has joined a cluster (even for single-node clusters). As you have already discovered, changing the allocated tokens will prevent Cassandra from starting.

You will need to edit the cassandra.yaml in order to allow Cassandra to start. Provided you named your container cassandra:

$ docker ps -a
CONTAINER ID  IMAGE      COMMAND  CREATED  STATUS  PORTS              NAMES
788db79a03d3  cassandra  ...      ...      Up      7000-7001/tcp,...  cassandra

you can view the cassandra container's configuration with:

$ docker inspect cassandra

and you will see that the configuration directory is set to:

                "CASSANDRA_CONF=/etc/cassandra",

Make a local copy of the configuration file:

$ docker cp cassandra:/etc/cassandra/cassandra.yaml .

Edit your local copy then copy the modified version to the the container with:

$ docker cp cassandra.yaml cassandra:/etc/cassandra/cassandra.yaml

Cheers!

Solution 2:[2]

Cassandra allow the min token number is 256, so just modify num_tokens to 256 or higher value in cassandra.yaml, then restart Cassandra

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Erick Ramirez
Solution 2 eason