本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Apache Cassandra是一款开源的分布式宽列存储NoSQL数据库管理系统,专为处理大规模结构化数据而设计。其核心定位是提供高可用性、线性可扩展性和容错能力,适用于需要在分布式环境中存储和管理海量数据的场景。该Docker镜像封装了Apache Cassandra的运行环境,简化了部署流程,支持快速搭建单节点或多节点集群,适用于开发、测试及生产环境。
采用无中心节点的分布式设计,数据自动分片并分布在多个节点,避免单点故障,支持集群动态扩缩容。
基于列族(Column Family)的数据模型,支持动态列扩展,适合存储半结构化数据,兼具关系型数据库的结构定义和NoSQL的灵活性。
通过副本机制(默认3副本)确保数据冗余,单个节点故障不影响集群可用性,支持自动故障检测和恢复。
集群性能随节点数量增加呈线性增长,可通过添加节点轻松扩展存储容量和处理能力。
采用基于Gossip协议的分布式一致性模型,支持可调的一致性级别(如ONE、QUORUM、ALL),平衡可用性与数据一致性。
原生支持跨数据中心部署,可配置数据副本跨区域分布,提升灾难恢复能力和全球访问性能。
优化写入路径,支持高吞吐量的写入操作,适合日志收集、物联网数据采集等写入密集型场景。
docker run -d \ --name cassandra-node1 \ -p 9042:9042 \ # CQL客户端端口 -p 7000:7000 \ # 节点间通信端口 -e CASSANDRA_CLUSTER_NAME="MyCassandraCluster" \ # 集群名称 -e CASSANDRA_NODE_NAME="node1" \ # 节点名称 -v cassandra-data:/var/lib/cassandra \ # 数据持久化卷 cassandra:latest
version: '3' services: cassandra-seed: image: cassandra:latest container_name: cassandra-seed ports: - "9042:9042" environment: - CASSANDRA_CLUSTER_NAME=MyCluster - CASSANDRA_NODE_NAME=seed-node - CASSANDRA_SEEDS=cassandra-seed # 种子节点(自身) - CASSANDRA_LISTEN_ADDRESS=cassandra-seed # 监听地址(容器名) - CASSANDRA_RPC_ADDRESS=0.0.0.0 # 允许外部RPC连接 volumes: - seed-data:/var/lib/cassandra cassandra-node2: image: cassandra:latest container_name: cassandra-node2 depends_on: - cassandra-seed environment: - CASSANDRA_CLUSTER_NAME=MyCluster - CASSANDRA_NODE_NAME=node2 - CASSANDRA_SEEDS=cassandra-seed # 连接种子节点加入集群 - CASSANDRA_LISTEN_ADDRESS=cassandra-node2 - CASSANDRA_RPC_ADDRESS=0.0.0.0 volumes: - node2-data:/var/lib/cassandra volumes: seed-data: node2-data:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
CASSANDRA_CLUSTER_NAME | 集群名称 | Test Cluster |
CASSANDRA_NODE_NAME | 节点名称 | 容器主机名 |
CASSANDRA_SEEDS | 种子节点IP/主机名(集群发现入口) | 容器IP |
CASSANDRA_LISTEN_ADDRESS | 节点间通信监听地址 | 0.0.0.0 |
CASSANDRA_RPC_ADDRESS | CQL客户端RPC监听地址 | 0.0.0.0 |
CASSANDRA_BROADCAST_ADDRESS | 对外广播地址(跨主机集群需配置) | 容器IP |
CASSANDRA_REPLICATION_FACTOR | 默认副本数(单数据中心) | 1 |
| 端口 | 用途 | 备注 |
|---|---|---|
| 7000 | 节点间通信(非SSL) | 集群内节点发现与数据同步 |
| 7001 | 节点间通信(SSL) | 启用SSL时使用 |
| 9042 | CQL客户端端口 | cqlsh、应用程序连接端口 |
| 9160 | Thrift RPC端口(已过时) | 仅兼容旧版客户端 |
为避免容器删除导致数据丢失,需通过Docker卷挂载数据目录:
# 创建命名卷(推荐) docker volume create cassandra-data # 运行容器时挂载卷 docker run -d \ --name cassandra \ -v cassandra-data:/var/lib/cassandra \ # 数据存储目录 -v cassandra-config:/etc/cassandra \ # 配置文件目录(可选) cassandra:latest
使用cqlsh客户端连接运行中的容器:
# 进入容器内部执行cqlsh docker exec -it cassandra-node1 cqlsh # 或从外部通过9042端口连接(需本地安装cqlsh) cqlsh <容器IP> 9042
如需修改cassandra.yaml配置(如调整缓存大小、超时时间等),可通过卷挂载自定义配置文件:
docker run -d \ --name cassandra \ -v /host/path/to/custom-cassandra.yaml:/etc/cassandra/cassandra.yaml \ cassandra:latest
关键配置项:
seed_provider:种子节点列表(集群发现)data_file_directories:数据文件存储路径commitlog_directory:提交日志路径read_request_timeout_in_ms:读请求超时时间(默认5000ms)
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429