如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意:这是 https://hub.docker.com/_/cassandra 的 amd64 架构构建的“按架构”仓库——更多信息,请参见官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64%E2%80%9D%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F FAQ 中的“https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E2%80%9D%E3%80%82
维护者:
https://github.com/docker-library/cassandra
获取帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接https://github.com/docker-library/cassandra/blob/793ea6b2a8097d629252fe77585775443b53e4c3/5.0/Dockerfile
https://github.com/docker-library/cassandra/blob/793ea6b2a8097d629252fe77585775443b53e4c3/4.1/Dockerfile
https://github.com/docker-library/cassandra/blob/793ea6b2a8097d629252fe77585775443b53e4c3/4.0/Dockerfile
https://github.com/docker-library/cassandra/blob/793ea6b2a8097d629252fe77585775443b53e4c3/3.11/Dockerfile
https://github.com/docker-library/cassandra/blob/793ea6b2a8097d629252fe77585775443b53e4c3/3.0/Dockerfile
问题反馈地址:
https://github.com/docker-library/cassandra/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/cassandra/%E3%80%81https://hub.docker.com/r/arm32v7/cassandra/%E3%80%81https://hub.docker.com/r/arm64v8/cassandra/%E3%80%81https://hub.docker.com/r/ppc64le/cassandra/%E3%80%81https://hub.docker.com/r/s390x/cassandra/
已发布镜像制品详情:
https://github.com/docker-library/repo-info/blob/master/repos/cassandra%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/cassandra%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fcassandra
https://github.com/docker-library/official-images/blob/master/library/cassandra%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/cassandra%EF%BC%89
本描述的来源:
https://github.com/docker-library/docs/tree/master/cassandra%EF%BC%88https://github.com/docker-library/docs/commits/master/cassandra%EF%BC%89
Apache Cassandra 是一款开源分布式数据库管理系统,旨在跨多台普通服务器处理大量数据,提供高可用性且无单点故障。Cassandra 支持跨多个数据中心的集群,通过异步无主复制为所有客户端提供低延迟操作。
***.org/wiki/Apache_Cassandra
!https://raw.githubusercontent.com/docker-library/docs/fb8596d619703fc556e6d56e***d8bfdf***/cassandra/logo.png
cassandra 服务器实例启动 Cassandra 实例非常简单:
console$ docker run --name some-cassandra --network some-network -d amd64/cassandra:tag
……其中 some-cassandra 是你要分配给容器的名称,tag 是指定你想要的 Cassandra 版本的标签。参见上文列表获取相关标签。
使用下文记录的环境变量,有两种集群场景:同一台机器上的实例和不同机器上的实例。对于同一台机器,按上述方式启动实例即可。要启动其他实例,只需告知每个新节点第一个节点的位置。
console$ docker run --name some-cassandra2 -d --network some-network -e CASSANDRA_SEEDS=some-cassandra amd64/cassandra:tag
对于不同机器(例如,云服务提供商上的两台虚拟机),你需要告知 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 amd64/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 amd64/cassandra:tag
cqlsh 连接到 Cassandra以下命令启动另一个 Cassandra 容器实例,并针对你的原始 Cassandra 容器运行 cqlsh(Cassandra 查询语言 shell),允许你对数据库实例执行 CQL 语句:
console$ docker run -it --network some-network --rm amd64/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 配置、通过运行时绑定挂载等),具体细节留给读者自行探索。
要使用不同的文件名(例如,避免所有镜像提供的配置行为),可将 -Dcassandra.config=/path/to/cassandra.yaml 作为镜像的参数(即 docker run ... amd64/cassandra -Dcassandra.config=/path/to/cassandra.yaml)。
该镜像支持少量环境变量,这些变量会以某种方式修改 /etc/cassandra/cassandra.yaml(但脚本是修改 YAML,因此本质上较为脆弱):
CASSANDRA_LISTEN_ADDRESS:此变量用于控制监听传入连接的 IP 地址。默认值为 auto,它会将 cassandra.yaml 中的 listen_address 选项设置为容器启动时的 IP 地址。此默认值在大多数使用场景下适用。
CASSANDRA_BROADCAST_ADDRESS:此变量用于控制向其他节点宣告的 IP 地址。默认值为 CASSANDRA_LISTEN_ADDRESS 的值。它会设置 cassandra.yaml 中的 broadcast_address 和 broadcast_rpc_address 选项。
CASSANDRA_RPC_ADDRESS:此变量用于控制 Thrift RPC 服务器绑定的地址。如果不指定地址,将使用通配符地址 (0.0.0.0)。它会设置 cassandra.yaml 中的 rpc_address 选项。
CASSANDRA_START_RPC:此变量用于控制是否启动 Thrift RPC 服务器。它会设置 cassandra.yaml 中的 start_rpc 选项。
CASSANDRA_SEEDS:此变量是用于 gossip 协议引导新节点加入集群的逗号分隔 IP 地址列表。它会设置 cassandra.yaml 中 seed_provider 选项的 seeds 值。传入的种子中会添加 CASSANDRA_BROADCAST_ADDRESS,以便服务器也能与自身通信。
CASSANDRA_CLUSTER_NAME:此变量设置集群名称,集群中的所有节点必须使用相同的名称。它会设置 cassandra.yaml 的 cluster_name 选项。
CASSANDRA_NUM_TOKENS:此变量设置此节点的令牌数量。它会设置 cassandra.yaml 的 num_tokens 选项。
CASSANDRA_DC:此变量设置此节点的数据中心名称。它会设置 cassandra-rackdc.properties 的 dc 选项。你必须将 CASSANDRA_ENDPOINT_SNITCH 设置为使用 "GossipingPropertyFileSnitch",Cassandra 才会应用 cassandra-rackdc.properties,否则此变量无效。
CASSANDRA_RACK:此变量设置此节点的机架名称。它会设置 cassandra-rackdc.properties 的 rack 选项。你必须将 CASSANDRA_ENDPOINT_SNITCH 设置为使用 "GossipingPropertyFileSnitch",Cassandra 才会应用 cassandra-rackdc.properties,否则此变量无效。
CASSANDRA_ENDPOINT_SNITCH:此变量设置此节点将使用的端点探测器实现。它会设置 cassandra.yml 的 endpoint_snitch 选项。
重要提示:有多种方式存储 Docker 容器中运行的应用程序使用的数据。我们建议 cassandra 镜像的用户熟悉可用选项,包括:
让 Docker 通过 使用其自己的内部卷管理将数据库文件写入主机系统的磁盘 来管理数据库数据的存储。这是默认方式,对用户而言简单且相对透明。缺点是对于直接在主机系统(即容器外部)运行的工具和应用程序,可能难以定位这些文件。
在主机系统上(容器外部)创建数据目录,并 将其挂载到容器内可见的目录。这会将数据库文件放置在主机系统上的已知位置,便于主机系统上的工具和应用程序访问这些文件。缺点是用户需要确保目录存在,并且主机系统上的目录权限和其他安全机制配置正确。
以下是后者的基本步骤:
在主机系统的合适卷上创建数据目录,例如 /my/own/datadir。
如下启动 cassandra 容器:
console$ docker run --name some-cassandra -v /my/own/datadir:/var/lib/cassandra -d amd64/cassandra:tag
命令中的 -v /my/own/datadir:/var/lib/cassandra 部分将主机系统的 /my/own/datadir 目录挂载为容器内的 /var/lib/cassandra,Cassandra 默认会将数据文件写入该目录。
如果容器启动时没有初始化数据库,则会创建默认数据库。虽然这是预期行为,但这意味着在初始化完成前,容器不会接受传入连接。这可能在使用自动化工具(如 Docker Compose)同时启动多个容器时导致问题。
查看本镜像中包含的软件的 许可信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可协议(例如基础发行版中的 Bash 等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可信息可能位于 https://github.com/docker-library/repo-info/tree/master/repos/cassandra 中。
至于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可协议。
以下是 amd64/cassandra 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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