Install ScyllaDB Inside Docker Container in Linux

Install ScyllaDB Inside Docker Container in Linux

ScyllaDB is an open-source NoSQL database that is designed to provide high performance, availability, scalability, and low latency for big data applications. It is compatible with Cassandra Query Language (CQL) and can be used as a drop-in replacement for Cassandra.

This tutorial explains how to install ScyllaDB inside a Docker container in the Linux. Commands have been tested on Ubuntu.

Prepare environment

Make sure you have installed Docker in your system. If you are using Ubuntu, installation instructions can be found in the post.

Install ScyllaDB

  • Host network

Run the following command to create a container for ScyllaDB that uses host network:

docker run -d --name=scylladb --restart=always --network=host \
    -v /opt/scylladb/data:/var/lib/scylla \
    scylladb/scylla
  • User-defined bridge network

User-defined bridge network can be used for listening on different port. By default, ScyllaDB service is listening on the following ports:

PortDescription
7000Used for inter-node cluster communication.
7001Used for SSL inter-node cluster communication.
9042Client port that used to connect to ScyllaDB and perform operations.
9160ScyllaDB Thrift client port.
9180Used for the Prometheus metrics API.
10000Used for the Scylla REST API.

Ports can be changed with -p option.

docker network create app-net
docker run -d --name=scylladb --restart=always --network=app-net \
    -p 8080:7000 -p 8081:7001 -p 8082:9042 -p 8083:9160 -p 8084:9180 -p 8085:10000 \
    -v /opt/scylladb/data:/var/lib/scylla \
    scylladb/scylla

Note: It might take a while before initialization is finished and the Docker container starts to respond to requests.

Testing ScyllaDB

Run the following command to open the ScyllaDB client and display a list of all keyspaces:

docker exec -it scylladb cqlsh -e "DESCRIBE keyspaces"

Output:

system_schema  system                         system_distributed
system_auth    system_distributed_everywhere  system_traces

Uninstall ScyllaDB

To completely remove ScyllaDB, remove its container:

docker rm --force scylladb

Remove ScyllaDB image:

docker rmi scylladb/scylla

You can also remove ScyllaDB data:

sudo rm -rf /opt/scylladb

If a user-defined bridge network was created, you can delete it as follows:

docker network rm app-net

Leave a Comment

Cancel reply

Your email address will not be published.