CockroachDB是一款分布式SQL数据库,专为提供"始终在线"(always-on)的客户体验设计。通过Docker镜像部署,可简化其在开发、测试及生产环境中的安装、配置与运行流程,支持从单节点本地部署到跨多主机的大规模分布式集群。
作为分布式SQL数据库,CockroachDB适用于需要强一致性、高可用性和水平扩展能力的业务场景,如***交易系统、电商平台、实时分析服务等对数据可靠性和服务连续性要求极高的应用。
通过Docker安装CockroachDB的详细步骤请参考***文档:Install CockroachDB
适用于开发或测试环境,启动单节点CockroachDB并暴露SQL端口(26257)和管理UI端口(8080):
bash# 启动单节点容器(--insecure用于测试,生产环境需启用TLS) docker run -d \ --name=roach-single \ -p 26257:26257 \ # SQL客户端连接端口 -p 8080:8080 \ # 管理UI端口 -v "${PWD}/data:/cockroach/cockroach-data" \ # 持久化数据卷 cockroachdb/cockroach:latest \ start-single-node \ # 单节点模式启动命令 --insecure \ # 禁用TLS(仅测试用) --listen-addr=0.0.0.0:26257 \ # 允许外部连接 --http-addr=0.0.0.0:8080 # 管理UI监听地址
验证部署:访问 http://localhost:8080 查看管理UI,或通过SQL客户端连接 postgres://root@localhost:26257/defaultdb?sslmode=disable。
在单Docker主机上部署多节点集群,需先创建专用网络以实现容器间通信:
bashdocker network create roachnet # 创建桥接网络,供集群节点通信
以3节点集群为例,节点间通过--join参数指定初始集群成员:
bash# 节点1(初始化集群) docker run -d \ --name=roach1 \ --net=roachnet \ -p 26257:26257 \ # 暴露SQL端口到主机 -p 8080:8080 \ # 暴露管理UI端口到主机 -v "${PWD}/data/roach1:/cockroach/cockroach-data" \ cockroachdb/cockroach:latest \ start \ --insecure \ --listen-addr=roach1:26257 \ # 节点1容器内地址 --http-addr=roach1:8080 \ --join=roach1:26257,roach2:26257,roach3:26257 # 集群节点列表 # 节点2 docker run -d \ --name=roach2 \ --net=roachnet \ -v "${PWD}/data/roach2:/cockroach/cockroach-data" \ cockroachdb/cockroach:latest \ start \ --insecure \ --listen-addr=roach2:26257 \ --http-addr=roach2:8080 \ --join=roach1:26257,roach2:26257,roach3:26257 # 节点3 docker run -d \ --name=roach3 \ --net=roachnet \ -v "${PWD}/data/roach3:/cockroach/cockroach-data" \ cockroachdb/cockroach:latest \ start \ --insecure \ --listen-addr=roach3:26257 \ --http-addr=roach3:8080 \ --join=roach1:26257,roach2:26257,roach3:26257
验证集群:通过节点1的管理UI(http://localhost:8080)查看集群状态,或执行以下命令检查节点:
bashdocker exec -it roach1 cockroach node status --insecure --host=roach1:26257
对于生产环境的跨主机分布式集群,需结合容器编排工具实现节点发现、网络配置和服务管理,具体方案参考***文档:
| 参数 | 作用说明 |
|---|---|
start-single-node | 单节点模式启动命令(自动初始化集群) |
start | 多节点模式启动命令(需配合--join指定集群节点) |
--insecure | 禁用TLS加密(仅测试用,生产环境需通过--certs-dir指定证书目录) |
--listen-addr | 节点间通信地址(格式:主机:端口,容器内需使用容器名或IP) |
--http-addr | 管理UI监听地址 |
--join | 集群初始节点列表(格式:节点1:端口,节点2:端口,...,用于节点发现) |
--store | 数据存储路径(默认/cockroach/cockroach-data,建议通过Docker卷挂载持久化) |
创建 docker-compose.yml 文件,简化多节点集群部署:
yamlversion: '3.8' services: roach1: image: cockroachdb/cockroach:latest container_name: roach1 command: start --insecure --listen-addr=roach1:26257 --http-addr=roach1:8080 --join=roach1:26257,roach2:26257,roach3:26257 ports: - "26257:26257" # SQL端口 - "8080:8080" # 管理UI端口 volumes: - ./data/roach1:/cockroach/cockroach-data networks: - roachnet roach2: image: cockroachdb/cockroach:latest container_name: roach2 command: start --insecure --listen-addr=roach2:26257 --http-addr=roach2:8080 --join=roach1:26257,roach2:26257,roach3:26257 volumes: - ./data/roach2:/cockroach/cockroach-data networks: - roachnet roach3: image: cockroachdb/cockroach:latest container_name: roach3 command: start --insecure --listen-addr=roach3:26257 --http-addr=roach3:8080 --join=roach1:26257,roach2:26257,roach3:26257 volumes: - ./data/roach3:/cockroach/cockroach-data networks: - roachnet networks: roachnet: driver: bridge # 桥接网络,实现容器间通信 volumes: roach1-data: roach2-data: roach3-data:
启动集群:
bashdocker-compose up -d # 后台启动所有节点 docker-compose logs -f # 查看集群日志
--insecure,通过--certs-dir指定TLS证书目录(证书生成方法参考***文档)。-v参数)挂载数据目录,避免容器删除导致数据丢失。--cpus=2 --memory=4g),避免资源竞争影响性能。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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