
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





来自真实用户的反馈,见证轩辕镜像的优质服务