本站支持搜索的镜像仓库: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的稳定版本,提供快速部署、环境隔离和一致性的运行环境,适用于开发、测试及生产环境中快速搭建Cassandra集群或单节点实例。通过容器化部署,可简化配置流程,降低环境依赖冲突,同时支持灵活的资源调整和数据持久化。
docker run --name cassandra -d \ -p 9042:9042 \ # CQL客户端端口(默认用于应用连接) -p 7000:7000 \ # 节点间通信端口(内部集群通信) -v cassandra-data:/var/lib/cassandra \ # 挂载数据卷持久化数据 cassandra:latest
说明:
cassandra-data为命名卷,自动创建并持久化数据,避免容器删除导致数据丢失。
version: '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:
docker network create cassandra-network
docker 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
docker 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配置。
免费版仅支持 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