datastax/dse-server
The best distribution of Apache Cassandra™ with integrated Search, Analytics, and Graph capabilities
5M+
DataStax Docker Docs, DataStax Discord, Github, Contact Us for more information on becoming a DataStax Customer
Advanced tutorials are located within DataStax Academy and Studio are available on our Github page
https://github.com/datastax/docker-images/issues
Built on the best distribution of Apache Cassandra™, DataStax Enterprise is the always-on database designed to allow you to effortlessly build and scale your apps, integrating graph, search, analytics, administration, developer tooling, and monitoring into a single unified platform. We power your apps' real-time moments so you can create instant insights and powerful customer experiences.
Use the options described in this section to create DataStax Enterprise server containers.
By default, the DSE server image runs in Cassandra-only mode.. To run with advanced DSE functionality, add the option that enables any combination of search, analytics, and graph to the end of the docker run command.
Option | Description |
---|---|
-s | Enables and starts DSE Search. |
-k | Enables and starts Analytics. |
-g | Enables and starts a DSE Graph. |
Combine startup options to run more than one feature. For more examples, see Starting DataStax Enterprise as a stand-alone process .
docker run -e DS_LICENSE=accept --name my-dse -d datastax/dse-server:<version tag>
docker run -e DS_LICENSE=accept --name my-dse -d datastax/dse-server:<version tag> -g
docker run -e DS_LICENSE=accept --name my-dse -d datastax/dse-server:<version tag> -k
docker run -e DS_LICENSE=accept --name my-dse -d datastax/dse-server:<version tag> -s
docker run -e DS_LICENSE=accept --name my-dse -d datastax/dse-server:<version tag> -s -k -g
Manage the DSE configuration using one of the following options:
DSE configuration volume For configuration management, we’re providing a simple mechanism to let you provide custom configuration file(s) without customizing the containers or over using host volumes. You can add any of the approved config files to a single mounted host volume and we’ll handle the hard work of mapping them within the container.
DSE environment variables that change the configuration at runtime.
Docker file/directory volume mounts
Docker overlay file system
DSE uses the default values defined for the environment variables unless explicitly set at run time.
NOTE When using memory resource contraints, you must must set JVM heap size using the environment variable JVM_EXTRA_OPTS
or custom cassandra-env.sh
or DSE running inside the container due to java not honoring resource limits set for the container. Java utilizes the resources (memory and CPU) of the host. Otherwise DSE will set the heap to 1/4 of the physical ram of the docker host.
To use this feature:
docker run -e DS_LICENSE=accept --name my-dse -v /dse/config:/config -d datastax/dse-server:<version tag>
Note When you make changes to or add config files to the /config
volume, you will need to restart your container with docker restart container_name
for DSE to pickup the changes. Restarting the container will restart DSE.
Configure the DSE image by setting environment variables when the container is created using the docker run command -e
flag.
Variable | Setting | Description |
---|---|---|
DS_LICENSE | accept | Required. Set to accept to acknowledge that you agree with the terms of the DataStax license. To show the license, set the variable DS_LICENSE to the value accept . The image only starts if the variable set to accept. |
LISTEN_ADDRESS | IP_address | The IP address to listen for connections from other nodes. Defaults to the container's IP address. |
BROADCAST_ADDRESS | IP_address | The IP address to advertise to other nodes. Defaults to the same value as the LISTEN_ADDRESS . |
NATIVE_TRANSPORT_ADDRESS | IP_address | The IP address to listen for client/driver connections. Default: 0.0.0.0 . |
NATIVE_TRANSPORT_BROADCAST_ADDRESS | IP_address | The IP address to advertise to clients/drivers. Defaults to the same value as the BROADCAST_ADDRESS . |
SEEDS | IP_address | The comma-delimited list of seed nodes for the cluster. Defaults to this node's BROADCAST_ADDRESS . |
START_RPC | true \ false | Whether or not to start the Thrift RPC server. Will leave the default in the cassandra.yaml file if not set. |
CLUSTER_NAME | string | The name of the cluster. Default: Test Cluster . |
NUM_TOKENS | int | The number of tokens randomly assigned to the node. Default: not set . |
DC | string | Datacenter name. Default: Cassandra . |
RACK | string | Rack name. Default: rack1 . |
OPSCENTER_IP | IP_address | Address of OpsCenter instance to use for DSE management; it can be specified via linking the OpsCenter container using opscenter as the name. |
JVM_EXTRA_OPTS | string | Allows setting custom Heap using -Xmx and -Xms. |
LANG | string | Allows setting custom Locale |
SNITCH | string | This variable sets the snitch implementation this node will use. It will set the endpoint_snitch option of cassandra.yaml. Default: GossipingPropertyFileSnitch |
DSE_AUTO_CONF_OFF | string | Sometimes users want to set all variables in the config files. For these situations one must prevent default environment variables from overriding those values. This setting lets you provide a comma-separated list of filenames (options are cassandra.yaml and cassandra-rackdc.properties) that will not accept the Environmental variables or can be set to 'all' to disable default environment variables being set within either file. |
To persist data, pre-create directories on the local host and map the directory to the corresponding volume using the docker run -v
flag.
NOTE: If the volumes are not mounted from the local host, all data is lost when the container is removed.
DSE images expose the following volumes.
/var/lib/cassandra
: Data from Cassandra/var/lib/spark
: Data from DSE Analytics w/ Spark/var/lib/dsefs
: Data from DSEFS/var/log/cassandra
: Logs from Cassandra/var/log/spark
: Logs from Sparkdocker run -v <local_directory>:<container_volume>
See Docker docs > Use volumes for more information.
Use the docker exec -it <container_name>
command to specific commands.
docker exec -it my-dse nodetool status
If the container is running in the background (using the -d
), use the following command to open an interactive bash shell to run DSE commands.
docker exec -it <container_name> bash
To exit the shell without stopping the container type exit.
Use the following command to open cqlsh.
docker exec -it <container_name> cqlsh
You can view the DSE logs using the Docker log command. For example:
docker logs my-dse
Head over to the DataStax docs and DataStax Academy for advanced documentation including
docker pull datastax/dse-server