
ScyllaDB是一款高性能NoSQL数据库系统,完全兼容Apache Cassandra。该数据库以开源形式发布,遵循GNU Affero通用公共许可证第3版(AGPLv3)和Apache许可证,可免费使用和修改。
ScyllaDB的核心设计目标是提供极高的吞吐量和低延迟,适用于需要处理大规模数据集的场景。通过Docker镜像,用户可快速部署单节点或多节点ScyllaDB集群,简化开发、测试和生产环境的搭建流程。
cqlsh、nodetool),可无缝迁移现有Cassandra应用。aio-max-nr)以优化性能。通过以下命令启动单节点ScyllaDB集群(开发者模式),限制使用1个CPU核心:
bashdocker run --name some-scylla --hostname some-scylla -d scylladb/scylla --smp 1
说明:
--smp 1:限制CPU核心数(生产环境需根据内核参数调整,详见下文)。--developer-mode 1),放松对XFS文件系统等配置的检查,适合测试。启动基础ScyllaDB节点(默认启用开发者模式):
bashdocker run --name some-scylla --hostname some-scylla -d scylladb/scylla
5.2.1 使用nodetool查看节点状态
bashdocker exec -it some-scylla nodetool status
示例输出:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 172.17.0.2 125.51 KB 256 100.0% c9155121-786d-44f8-8667-a8b915b95665 rack1
5.2.2 使用cqlsh连接数据库
bashdocker exec -it some-scylla cqlsh
示例输出:
Connected to Test Cluster at 172.17.0.2:9042. [cqlsh 5.0.1 | Cassandra 2.1.8 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help. cqlsh>
5.3.1 手动添加节点
以现有节点为种子,启动第二个节点:
bash# 获取第一个节点的IP SEED_IP=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' some-scylla) # 启动第二个节点,指定种子节点 docker run --name some-scylla2 --hostname some-scylla2 -d scylladb/scylla --seeds="$SEED_IP"
5.3.2 使用Docker Compose部署3节点集群
创建docker-compose.yml文件:
yamlversion: '3' services: some-scylla: image: scylladb/scylla container_name: some-scylla some-scylla2: image: scylladb/scylla container_name: some-scylla2 command: --seeds=some-scylla some-scylla3: image: scylladb/scylla container_name: some-scylla3 command: --seeds=some-scylla
启动集群:
bashdocker-compose up -d
bashdocker logs some-scylla | tail
示例输出:
INFO 2016-08-04 06:57:40,839 [shard 0] storage_service - Starting listening for CQL clients on 172.17.0.2:9042... INFO 2016-08-04 06:57:40,840 [shard 0] storage_service - Thrift server listening on 172.17.0.2:9160 ...
为提升性能并确保数据持久化,建议挂载宿主机目录作为数据卷:
5.5.1 宿主机准备目录
bashsudo mkdir -p /var/lib/scylla/data /var/lib/scylla/commitlog /var/lib/scylla/hints /var/lib/scylla/view_hints
5.5.2 启动容器并挂载卷
禁用开发者模式(生产环境),并挂载数据卷:
bashdocker run --name some-scylla --volume /var/lib/scylla:/var/lib/scylla -d scylladb/scylla --developer-mode=0
默认情况下,Scylla容器运行在过度配置模式(不启用CPU绑定优化)。为提升性能,建议通过以下参数限制资源:
--smp:限制CPU核心数--memory:限制内存使用量--cpuset:指定绑定的CPU核心示例:限制2个CPU核心、4GB内存,并绑定至物理CPU 0-1:
bashdocker run --name some-scylla -d scylladb/scylla --smp 2 --memory 4G --cpuset 0-1 --overprovisioned 0
容器内通过supervisorctl管理Scylla进程,重启命令:
bashdocker exec -it some-scylla supervisorctl restart scylla
通过docker run命令传递,用于自定义Scylla节点行为。
--seeds SEEDS
bashdocker run --name some-scylla -d scylladb/scylla --seeds 192.168.0.100,192.168.0.200
--listen-address ADDR
10.0.0.5
bashdocker run --name some-scylla -d scylladb/scylla --listen-address 10.0.0.5
--alternator-address ADDR
--listen-address相同。--alternator-port PORT
bashdocker run --name some-scylla -d scylladb/scylla --alternator-port 8000
--alternator-https-port PORT
/etc/scylla/scylla.crt和/etc/scylla/scylla.key)。--alternator-write-isolation policy
--broadcast-address ADDR
bashdocker run --name some-scylla -d scylladb/scylla --broadcast-address 10.0.0.5
--broadcast-rpc-address ADDR
--smp COUNT
bashdocker run --name some-scylla -d scylladb/scylla --smp 1
--memory AMOUNT
M(MB)或G(GB)为单位。bashdocker run --name some-scylla -d scylladb/scylla --memory 4G
--reserve-memory AMOUNT
bashdocker run --name some-scylla -d scylladb/scylla --reserve-memory 2G
--overprovisioned ENABLE
--cpuset时自动禁用。bashdocker run --name some-scylla -d scylladb/scylla --overprovisioned 0
--io-setup ENABLE
scylla_io_setup脚本(I/O调优),默认1(启用)。Kubernetes等环境可禁用。bashdocker run --name some-scylla -d scylladb/scylla --io-setup 0
--cpuset CPUSET
1)、范围(0-2)或列表(0,2,4)。bashdocker run --name some-scylla -d scylladb/scylla --cpuset 0-2,4
--developer-mode ENABLE
bashdocker run --name some-scylla -d scylladb/scylla --developer-mode 0
--experimental ENABLE
bashdocker run --name some-scylla -d scylladb/scylla --experimental 1
--disable-version-check
--authenticator AUTHENTICATOR
AllowAllAuthenticator(无认证),可选PasswordAuthenticator(用户名/密码认证)。--authorizer AUTHORIZER
AllowAllAuthorizer(无授权),可选CassandraAuthorizer(基于system_auth.permissions表授权)。通过环境变量(-e)配置JMX服务,容器启动时由/scylla-jmx-service.sh读取。
| 环境变量 | 作用 | 默认值 | 示例 |
|---|---|---|---|
SCYLLA_JMX_PORT | JMX监听端口 | -jp 7199 | -e "SCYLLA_JMX_PORT=-jp 7200" |
SCYLLA_API_PORT | Scylla API端口 | -p 10000 | -e "SCYLLA_API_PORT=-p 10001" |
SCYLLA_JMX_ADDR | JMX绑定地址 | -ja localhost | -e "SCYLLA_JMX_ADDR=-ja 0.0.0.0" |
SCYLLA_JMX_REMOTE | 允许远程JMX访问 | 未设置(默认禁用) | -e "SCYLLA_JMX_REMOTE=-r" |
示例:开放JMX远程访问(绑定0.0.0.0,端口7199):
bashdocker run -d -e "SCYLLA_JMX_ADDR=-ja 0.0.0.0" -e "SCYLLA_JMX_REMOTE=-r" --publish 7199:7199 scylladb/scylla
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务