
timveil/cockroachdb-remote-clientCockroachDB Remote Client是一个用于对CockroachDB集群执行简单任务后自动退出的Docker镜像。该镜像主要用于执行一次性操作,如创建数据库、创建用户、设置集群配置参数或初始化集群等。其设计初衷是在Kubernetes或Docker Compose等编排环境中,作为临时服务完成初始化配置任务,任务执行完毕后容器自动退出。
cockroach init命令)该镜像通过环境变量进行配置,支持以下参数(详细连接说明可参考CockroachDB官方文档):
| 环境变量 | 是否必填 | 说明 |
|---|---|---|
COCKROACH_HOST | 是 | CockroachDB连接地址,格式为<host>:<port>。若未包含端口,需通过COCKROACH_PORT单独指定 |
COCKROACH_USER | 是 | 用于连接CockroachDB的用户,将作为远程客户端会话的所有者 |
COCKROACH_PORT | 否 | CockroachDB端口,仅当COCKROACH_HOST未包含端口时需要指定 |
COCKROACH_INSECURE | 否 | 是否使用不安全连接,值必须为true或false |
COCKROACH_CERTS_DIR | 否 | 证书目录路径,包含CA证书、客户端证书和客户端密钥(安全连接时需配置) |
DATABASE_NAME | 否 | 要创建的数据库名称,若指定则自动执行数据库创建操作 |
DATABASE_USER | 否 | 要创建的数据库用户名称,创建的用户将自动拥有admin权限 |
DATABASE_PASSWORD | 否 | DATABASE_USER的密码,若未提供则密码设为NULL,用户无法使用密码认证 |
COCKROACH_ORG | 否 | 集群组织名称,对应cluster.organization配置项 |
COCKROACH_LICENSE_KEY | 否 | 企业许可证密钥,对应enterprise.license配置项 |
COCKROACH_INIT | 否 | 是否初始化集群,值为true时执行cockroach init命令初始化集群 |
以下是在Docker Compose中使用该镜像的典型配置示例,其中crdb-init服务即为使用该镜像的临时初始化服务:
yamlservices: # CockroachDB节点服务(示例) crdb-0: ... crdb-1: ... crdb-2: ... # 负载均衡服务(示例) lb: container_name: lb hostname: lb image: timveil/dynamic-haproxy:latest ports: - "26257:26257" # CockroachDB SQL端口 - "8080:8080" # 集群UI端口 - "8081:8081" environment: - NODES=crdb-0 crdb-1 crdb-2 # 集群节点列表 depends_on: - crdb-0 - crdb-1 - crdb-2 # CockroachDB初始化服务(使用当前镜像) crdb-init: container_name: crdb-init hostname: crdb-init image: timveil/cockroachdb-remote-client:latest environment: - COCKROACH_HOST=crdb-0:26257 # 连接地址(必填) - COCKROACH_INSECURE=true # 使用非安全连接 - DATABASE_NAME=test # 要创建的数据库名称 depends_on: - lb # 依赖负载均衡服务或集群节点服务
如需自行构建镜像,可使用以下命令:
bashdocker build --no-cache -t timveil/cockroachdb-remote-client:latest .
构建完成后,可通过以下命令将镜像推送到镜像仓库:
bashdocker push timveil/cockroachdb-remote-client:latest
直接运行镜像(需通过环境变量指定必要参数):
bashdocker run -it timveil/cockroachdb-remote-client:latest
通过环境变量配置连接信息和任务参数:
bashdocker run \ --env COCKROACH_HOST=localhost:26257 \ # 连接本地CockroachDB节点 --env COCKROACH_INSECURE=true \ # 非安全连接模式 --env DATABASE_NAME=test \ # 创建名为test的数据库 --env COCKROACH_INIT=true \ # 初始化集群 -it timveil/cockroachdb-remote-client:latest



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务