如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Apache Cassandra是一款开源分布式NoSQL数据库,以高可用性、线性扩展能力和容错性著称。本Docker镜像封装了Apache Cassandra的稳定版本,提供快速部署、环境隔离和一致性的运行环境,适用于开发、测试及生产环境中快速搭建Cassandra集群或单节点实例。通过容器化部署,可简化配置流程,降低环境依赖冲突,同时支持灵活的资源调整和数据持久化。
单节点快速启动
bashdocker run --name cassandra -d \ -p 9042:9042 \ # CQL客户端端口(默认用于应用连接) -p 7000:7000 \ # 节点间通信端口(内部集群通信) -v cassandra-data:/var/lib/cassandra \ # 挂载数据卷持久化数据 cassandra:latest
说明:
cassandra-data为命名卷,自动创建并持久化数据,避免容器删除导致数据丢失。
单节点配置
yamlversion: '3.8' services: cassandra: image: cassandra:latest container_name: cassandra ports: - "9042:9042" # CQL端口 - "7000:7000" # 节点间通信端口(TCP) - "7001:7001" # 节点间SSL通信端口(可选) - "7199:7199" # JMX监控端口(可选) volumes: - cassandra-data:/var/lib/cassandra - ./cassandra.yaml:/etc/cassandra/cassandra.yaml # 自定义配置文件(可选) environment: - CASSANDRA_CLUSTER_NAME=MyCluster # 集群名称(默认:Test Cluster) - CASSANDRA_NUM_TOKENS=256 # 每个节点的令牌数(默认:256,影响数据分布均匀性) - MAX_HEAP_SIZE=2G # JVM最大堆内存(根据宿主机资源调整) - HEAP_NEWSIZE=512M # JVM新生代内存(建议为MAX_HEAP_SIZE的1/4) restart: unless-stopped volumes: cassandra-data:
2节点集群快速搭建
bashdocker network create cassandra-network
bashdocker run --name cassandra-seed -d \ --network cassandra-network \ -e CASSANDRA_CLUSTER_NAME=MyCluster \ -e CASSANDRA_NUM_TOKENS=256 \ -v cassandra-seed-data:/var/lib/cassandra \ cassandra:latest
bashdocker run --name cassandra-node2 -d \ --network cassandra-network \ -e CASSANDRA_CLUSTER_NAME=MyCluster \ -e CASSANDRA_SEEDS=cassandra-seed # 种子节点主机名(需与网络内节点名称一致) \ -e CASSANDRA_NUM_TOKENS=256 \ -v cassandra-node2-data:/var/lib/cassandra \ cassandra:latest
验证集群状态:进入任一容器执行
nodetool status,输出应显示所有节点状态为UN(Up/Normal)。
| 环境变量 | 描述 | 默认值 |
|---|---|---|
CASSANDRA_CLUSTER_NAME | 集群名称,同一集群内所有节点需一致 | Test Cluster |
CASSANDRA_SEEDS | 种子节点IP/主机名列表(用于集群初始化和节点发现),多个节点用逗号分隔 | 容器自身IP |
CASSANDRA_LISTEN_ADDRESS | 节点间通信绑定地址(内部集群通信) | 容器IP(自动检测) |
CASSANDRA_RPC_ADDRESS | CQL客户端通信绑定地址(应用连接端口) | 0.0.0.0(允许所有接口) |
CASSANDRA_BROADCAST_ADDRESS | 对外广播的节点地址(跨网络通信时使用) | 容器IP |
CASSANDRA_NUM_TOKENS | 每个节点的令牌数(影响数据分片均匀性,推荐256或512) | 256 |
CASSANDRA_ENDPOINT_SNITCH | 节点位置感知策略(如跨数据中心部署需配置为GossipingPropertyFileSnitch) | SimpleSnitch |
MAX_HEAP_SIZE | JVM最大堆内存(如2G),建议不超过物理内存的50% | 物理内存的1/4(自动计算) |
HEAP_NEWSIZE | JVM新生代内存,建议为MAX_HEAP_SIZE的1/4 | MAX_HEAP_SIZE的1/4 |
-v <宿主机路径>:/var/lib/cassandra挂载数据卷,确保容器删除后数据不丢失。生产环境建议使用高性能存储(如SSD)以提升IO性能。nodetool snapshot创建数据快照,或使用cqlsh导出数据(COPY命令),备份文件建议存储在容器外部持久化存储中。应用或工具可通过CQL协议(默认端口9042)连接Cassandra实例:
docker exec -it cassandra cqlshcqlsh、DataStax Studio)连接宿主机IP:9042,需确保宿主机端口映射正确且防火墙开放9042端口。MAX_HEAP_SIZE和HEAP_NEWSIZE优化JVM性能。authenticator: PasswordAuthenticator)和授权(authorizer: CassandraAuthorizer),并通过环境变量或自定义cassandra.yaml配置。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

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