Run in Docker¶
New in version 1.3.1: Scylla Manager
The best way to run Scylla Manager in a Docker container is by using the official Scylla Manager Docker image. You can pull the image directly from Docker Hub.
docker pull scylladb/scylla-manager
Scylla Manager is using Scylla as a backend storage. When running Scylla Manager in a Docker container, you can either use an existing Scylla cluster as a backend or run a dedicated Scylla container and link them. This can be done automatically with docker-compose (refer to Running with docker-compose) or manually with plain Docker command (refer to Running with docker).
Scylla Manager for Scylla Open Source users is limited to 5 nodes. See the Scylla Manager Proprietary Software License Agreement.
Docker compose is a tool for defining and running multi-container applications.
- Copy the following snippet and save it to your current working directory as
version: '3' services: scylla-manager: image: scylladb/scylla-manager container_name: scylla-manager depends_on: - scylla-manager-db scylla-manager-db: image: scylladb/scylla container_name: scylla-manager-db
This file instructs Docker to create two containers, scylla-manager that runs the Scylla Manager Server, and scylla-manager-db that Scylla Manager uses to save its data.
- Create and start the containers by running the
docker-compose up -d
- Verify that Scylla Manager started by using the
docker-compose logs -f scylla-manager
- Continue to using sctool.
- Start a Scylla container to use as the datastore for Scylla Manager data.
docker run -d --name scylla-manager-db scylladb/scylla
- Start Scylla Manager container and link with the scylla-manager-db container.
docker run -d --name scylla-manager --link scylla-manager-db scylladb/scylla-manager
Scylla Manager expects a Scylla node available as scylla-manager-db.
You can give the Scylla container a different name or connect scylla-manager-db container to an already existing container. To do so, use the scylla-manager-db alias in the following link flag:
- Verify that Scylla Manager stared by using
docker logs -f scylla-manager
Sctool is the Scylla Manager commandline tool, to learn more about it see sctool reference.
docker exec to invoke sctool in a running container.
docker exec -it scylla-manager sctool version
You can also exec bash and run sctool from within a bash session in the container. This would give you the benefit of bash completion for sctool.
docker exec -it scylla-manager bash [root@49910e75d06f /]# sctool cluster repair status task version [root@49910e75d06f /]# sctool version
If you with to persist Scylla Manager data on a remote cluster you need to adjust the configuration options. The configuration file document covers all the Scylla Manager configuration options.
- Open editor and create an empty yaml file.
- Copy the
sslsections from the configuration file document.
- Follow the procedure in edit scylla manager configuration and adjust the configuration file.
- Optionally, you can remove any comments or not changed lines leaving only relevant changes.
- Save the file as
scylla-manager-user.yamlin an appropriate location.
- Start scylla-manager container with file
scylla-manager-user.yamlyou created earlier mounted as a volume. Pass it as an additional Docker command (
docker run) parameter.
docker run -d --name scylla-manager --link scylla-manager-db scylladb/scylla-manager -c /etc/scylla-manager/scylla-manager-user.yaml
Scylla Manager exposes the following ports, which are used for integrating Scylla Manager with other services such as Scylla Monitoring.
It is often useful to attach host files and directories to the Scylla Manager container. The following volumes are exposed from Scylla Manager.
|/var/lib/scylla-manager/.certs||SSH identity files and SSL key pairs to access the managed clusters|
Example for mapping Scylla Manager a volume in
docker run command:
docker run -d --name scylla-manager -v certs:/var/lib/scylla-manager/.certs:Z \ -v scylla-manager-user.yaml:/etc/scylla-manager/scylla-manager-user.yaml \ --link scylla-manager-db scylladb/scylla-manager -c /etc/scylla-manager/scylla-manager-user.yaml