
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Apache CouchDB 是一个面向文档的数据库,使用 JSON 存储文档,通过 HTTP API 进行交互,并支持 JavaScript/声明式索引。其核心特性是定义了 Couch 复制协议,使数据能够在全球分布式服务器集群、移动设备和 Web 浏览器等各种计算环境中无缝同步,提供离线优先的用户体验,同时保持高性能和可靠性。
该 Docker 镜像是 Apache CouchDB 官方镜像的 amd64 架构版本,用于简化 CouchDB 的部署和运行,适用于开发、测试和生产环境。
| 标签 | Dockerfile 链接 |
|---|---|
latest, 3.5.0, 3.5, 3 | https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.5.0/Dockerfile |
3.5.0-nouveau, 3.5-nouveau, 3-nouveau | https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.5.0-nouveau/Dockerfile |
3.4.3, 3.4 | https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.4.3/Dockerfile |
3.4.3-nouveau, 3.4-nouveau | https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.4.3-nouveau/Dockerfile |
通过以下命令启动一个基本的 CouchDB 容器:
console$ docker run -d --name my-couchdb amd64/couchdb:latest
--name my-couchdb:指定容器名称为 my-couchdb。amd64/couchdb:latest:使用最新版本的 amd64 架构 CouchDB 镜像。CouchDB 默认暴露 5984 端口,可通过容器链接使其他应用容器访问。例如,启动一个依赖 CouchDB 的应用容器:
console$ docker run --name my-app --link my-couchdb:couchdb -d app-that-uses-couchdb
--link my-couchdb:couchdb:将 my-couchdb 容器链接到当前应用容器,并以 couchdb 为别名,应用可通过 couchdb:5984 访问数据库。若需从宿主机或外部网络访问 CouchDB,需映射容器端口到宿主机:
console$ docker run -p 5984:5984 -d amd64/couchdb:latest
警告:暴露端口前需确保已创建管理员用户并正确配置数据库权限,避免未授权访问。
单节点启动(含管理员用户)
通过环境变量 COUCHDB_USER 和 COUCHDB_PASSWORD 创建管理员用户:
console$ docker run -d \ -e COUCHDB_USER=admin \ -e COUCHDB_PASSWORD=securepassword \ -p 5984:5984 \ --name couchdb-node1 \ amd64/couchdb:latest
多节点集群配置
NODENAME(节点名称)和 Erlang Cookie(集群节点间通信密钥):console# 节点 1 $ docker run -d \ -e NODENAME=couchdb@node1 \ -e ERL_FLAGS="-setcookie myclustercookie" \ -p 5984:5984 \ --name couchdb-node1 \ amd64/couchdb:latest # 节点 2(假设宿主机 IP 为 192.168.1.100) $ docker run -d \ -e NODENAME=couchdb@node2 \ -e ERL_FLAGS="-setcookie myclustercookie" \ -p 5985:5984 \ --name couchdb-node2 \ amd64/couchdb:latest
_global_changes、_replicator、_users)。创建 docker-compose.yml 文件:
yamlversion: '3' services: couchdb: image: amd64/couchdb:latest ports: - "5984:5984" environment: - COUCHDB_USER=admin - COUCHDB_PASSWORD=securepassword volumes: - couchdb-data:/opt/couchdb/data restart: always volumes: couchdb-data: # 使用 Docker 卷持久化数据
启动集群:
console$ docker-compose up -d
进入容器 Shell
通过 docker exec 进入容器命令行:
console$ docker exec -it my-couchdb bash
访问 Erlang 运行时
直接与 CouchDB 的 Erlang 运行时交互:
console$ docker exec -it my-couchdb /opt/couchdb/bin/remsh
查看容器日志
CouchDB 日志输出到标准输出,可通过 docker logs 查看:
console$ docker logs my-couchdb
| 环境变量 | 描述 | 示例值 |
|---|---|---|
COUCHDB_USER | 创建管理员用户名,会写入 /opt/couchdb/etc/local.d/docker.ini | admin |
COUCHDB_PASSWORD | 管理员密码,与 COUCHDB_USER 配合使用 | securepassword |
COUCHDB_SECRET | 集群共享密钥,用于节点间身份验证 | myclustersecret |
NODENAME | 节点名称,格式为 couchdb@<hostname>,用于集群识别 | couchdb@node1 |
ERL_FLAGS | Erlang 运行时参数,如设置 Cookie(-setcookie "mycookie") | -setcookie "mycookie" |
CouchDB 数据默认存储在容器内 /opt/couchdb/data 目录,需通过以下方式持久化:
1. Docker 卷(推荐)
使用 Docker 托管卷,自动管理存储路径和权限:
console$ docker run -d \ -v couchdb-data:/opt/couchdb/data \ --name my-couchdb \ amd64/couchdb:latest
2. 宿主机目录绑定
将宿主机目录直接挂载到容器(需确保宿主机目录权限正确,CouchDB 运行用户 UID 为 5984):
console$ mkdir -p /home/couchdb/data $ chown -R 5984:5984 /home/couchdb/data # 设置目录所有者为容器内 CouchDB 用户 $ docker run -d \ -v /home/couchdb/data:/opt/couchdb/data \ --name my-couchdb \ amd64/couchdb:latest
CouchDB 配置文件位于 /opt/couchdb/etc,推荐通过以下方式自定义配置:
1. 挂载配置目录
将宿主机配置目录挂载到容器 /opt/couchdb/etc/local.d(动态配置文件目录):
console$ docker run -d \ -v /home/couchdb/etc:/opt/couchdb/etc/local.d \ --name my-couchdb \ amd64/couchdb:latest
在宿主机 /home/couchdb/etc 下创建 .ini 文件(如 custom.ini),配置会被自动加载。
2. 基于镜像构建自定义镜像
创建 Dockerfile 复制自定义配置文件:
dockerfileFROM amd64/couchdb:latest COPY custom.ini /opt/couchdb/etc/local.d/
构建并运行:
console$ docker build -t my-custom-couchdb . $ docker run -d -p 5984:5984 my-custom-couchdb
CouchDB 不会自动创建系统数据库(_global_changes、_replicator、_users),需通过以下方式创建:
bashcurl -X PUT http://admin:securepassword@localhost:5984/_users curl -X PUT http://admin:securepassword@localhost:5984/_replicator curl -X PUT http://admin:securepassword@localhost:5984/_global_changes
默认情况下,CouchDB 启动时处于“管理员模式”(无认证访问),必须立即创建管理员用户。可通过以下方式:
COUCHDB_USER 和 COUCHDB_PASSWORD 环境变量。默认日志输出到 stdout,可通过配置文件启用文件日志:
在自定义配置文件(如 log.ini)中添加:
ini[log] writer = file file = /opt/couchdb/log/couch.log level = info # 日志级别:debug, info, warn, error
挂载日志目录到宿主机(避免容器内日志占用过多空间):
console$ docker run -d \ -v /home/couchdb/log:/opt/couchdb/log \ -v /home/couchdb/etc:/opt/couchdb/etc/local.d \ --name my-couchdb \ amd64/couchdb:latest
Apache CouchDB 采用 https://github.com/apache/couchdb/blob/master/LICENSE%E3%80%82Docker 镜像中可能包含其他软件(如基础系统组件、依赖库等),其许可证需参考各软件自身的许可协议。
镜像元数据和许可证信息可参考 https://github.com/docker-library/repo-info/tree/master/repos/couchdb%E3%80%82%E4%BD%BF%E7%94%A8%E5%89%8D%E8%AF%B7%E7%A1%AE%E4%BF%9D%E9%81%B5%E5%AE%88%E6%89%80%E6%9C%89%E5%8C%85%E5%90%AB%E8%BD%AF%E4%BB%B6%E7%9A%84%E8%AE%B8%E5%8F%AF%E6%9D%A1%E6%AC%BE%E3%80%82
amd64、arm64v8、s390x以下是 amd64/couchdb 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务