注意: 这是 cassandra 镜像 的 arm64v8 架构构建的“每架构”仓库——更多信息,请参见镜像文档中的“非 amd64 架构?”和***镜像常见问题中的“Git 中镜像的源代码已更改,现在该怎么办?”。
维护者: Docker 社区
获取帮助: Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接5.0.5, 5.0, 5, latest, 5.0.5-jammy, 5.0-jammy, 5-jammy, jammy
4.1.10, 4.1, 4, 4.1.10-jammy, 4.1-jammy, 4-jammy
4.0.18, 4.0, 4.0.18-jammy, 4.0-jammy
3.11.19, 3.11, 3, 3.11.19-jammy, 3.11-jammy, 3-jammy
3.0.32, 3.0, 3.0.32-jammy, 3.0-jammy
问题提交地址: [***]
支持的架构: (更多信息)
amd64、arm32v7、arm64v8、ppc64le、s390x
已发布镜像制品详情:
repo-info 仓库的 repos/cassandra/ 目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/cassandra 标签
official-images 仓库的 library/cassandra 文件(历史记录)
本描述的来源:
docs 仓库的 cassandra/ 目录(历史记录)
Apache Cassandra 是一个开源分布式数据库管理系统,旨在跨多台普通服务器处理大量数据,提供高可用性且无单点故障。Cassandra 支持跨多个数据中心的集群,通过异步无主复制为所有客户端提供低延迟操作。
***.org/wiki/Apache_Cassandra
!logo
cassandra 服务器实例启动 Cassandra 实例非常简单:
console$ docker run --name some-cassandra --network some-network -d arm64v8/cassandra:tag
其中 some-cassandra 是你要分配给容器的名称,tag 是指定你想要的 Cassandra 版本的标签。参见上方列表获取相关标签。
使用下文记录的环境变量,可以实现两种集群场景:同一台机器上的实例和不同机器上的实例。对于同一台机器,按上述方式启动实例。要启动其他实例,只需告诉每个新节点第一个节点的位置。
console$ docker run --name some-cassandra2 -d --network some-network -e CASSANDRA_SEEDS=some-cassandra arm64v8/cassandra:tag
对于不同机器(例如,云提供商上的两个 VM),需要告诉 Cassandra 要向其他节点通告的 IP 地址(因为容器的地址在 docker 桥接后面)。
假设第一台机器的 IP 地址是 10.42.42.42,第二台是 10.43.43.43,启动第一台时暴露 gossip 端口:
console$ docker run --name some-cassandra -d -e CASSANDRA_BROADCAST_ADDRESS=10.42.42.42 -p 7000:7000 arm64v8/cassandra:tag
然后在第二台机器上启动 Cassandra 容器,暴露 gossip 端口并将种子指向第一台机器:
console$ docker run --name some-cassandra -d -e CASSANDRA_BROADCAST_ADDRESS=10.43.43.43 -p 7000:7000 -e CASSANDRA_SEEDS=10.42.42.42 arm64v8/cassandra:tag
cqlsh 连接到 Cassandra以下命令启动另一个 Cassandra 容器实例,并针对原始 Cassandra 容器运行 cqlsh(Cassandra 查询语言 shell),允许你对数据库实例执行 CQL 语句:
console$ docker run -it --network some-network --rm arm64v8/cassandra cqlsh some-cassandra
有关 CQL 的更多信息,请参见 Cassandra 文档。
docker exec 命令允许你在 Docker 容器内运行命令。以下命令将为你提供 cassandra 容器内的 bash shell:
console$ docker exec -it some-cassandra bash
Cassandra 服务器日志可通过 Docker 的容器日志查看:
console$ docker logs some-cassandra
向 cassandra 镜像提供配置的最佳方式是提供自定义的 /etc/cassandra/cassandra.yaml 文件。有多种方式可将此文件提供给容器(通过简短的 Dockerfile 使用 FROM + COPY、通过 Docker Configs、通过运行时绑定挂载等),具体细节留给读者自行探索。
要使用不同的文件名(例如,避免所有镜像提供的配置行为),使用 -Dcassandra.config=/path/to/cassandra.yaml 作为镜像的参数(例如,docker run ... arm64v8/cassandra -Dcassandra.config=/path/to/cassandra.yaml)。
镜像支持少量环境变量,这些变量将以某种方式修改 /etc/cassandra/cassandra.yaml(但脚本正在修改 YAML,因此本质上是脆弱的):
CASSANDRA_LISTEN_ADDRESS:控制监听传入连接的 IP 地址,默认 auto(容器启动时的 IP),对应 listen_address 配置。CASSANDRA_BROADCAST_ADDRESS:控制向其他节点通告的 IP 地址,默认同 CASSANDRA_LISTEN_ADDRESS,对应 broadcast_address 和 broadcast_rpc_address 配置。CASSANDRA_RPC_ADDRESS:控制 thrift rpc 服务器绑定地址,默认 0.0.0.0,对应 rpc_address 配置。CASSANDRA_START_RPC:控制是否启动 thrift rpc 服务器,对应 start_rpc 配置。CASSANDRA_SEEDS:gossip 引导新节点的种子 IP 列表,对应 seed_provider 的 seeds 值,会添加 CASSANDRA_BROADCAST_ADDRESS。CASSANDRA_CLUSTER_NAME:集群名称,所有节点需一致,对应 cluster_name 配置。CASSANDRA_NUM_TOKENS:节点的令牌数,对应 num_tokens 配置。CASSANDRA_DC:节点的数据中心名称,需配合 CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch 生效,对应 cassandra-rackdc.properties 的 dc 配置。CASSANDRA_RACK:节点的机架名称,需配合 CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch 生效,对应 cassandra-rackdc.properties 的 rack 配置。CASSANDRA_ENDPOINT_SNITCH:节点使用的 snitch 实现,对应 endpoint_snitch 配置。建议通过挂载主机目录持久化存储数据,步骤如下:
/my/own/datadir。其中console$ docker run --name some-cassandra -v /my/own/datadir:/var/lib/cassandra -d arm64v8/cassandra:tag
-v /my/own/datadir:/var/lib/cassandra 将主机目录挂载到容器内 Cassandra 数据目录。容器启动时若未初始化数据库,会创建默认数据库,期间无法接受连接。自动化工具(如 Docker Compose)同时启动多容器时可能受此影响。
查看镜像中软件的 许可信息。镜像可能包含其他软件,其许可信息可参考 repo-info 仓库的 cassandra/ 目录。使用前请确保符合所有软件许可要求。

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429