本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Apache CouchDB 是一个面向文档的数据库,使用 JSON 存储文档,通过 HTTP API 进行交互,并支持 JavaScript/声明式索引。其核心特性是定义了 Couch 复制协议,使数据能够在全球分布式服务器集群、移动设备和 Web 浏览器等各种计算环境中无缝同步,提供离线优先的用户体验,同时保持高性能和可靠性。
该 Docker 镜像是 Apache CouchDB 官方镜像的 amd64 架构版本,用于简化 CouchDB 的部署和运行,适用于开发、测试和生产环境。
| 标签 | Dockerfile 链接 |
|---|---|
latest, 3.5.0, 3.5, 3 | 3.5.0/Dockerfile |
3.5.0-nouveau, 3.5-nouveau, 3-nouveau | 3.5.0-nouveau/Dockerfile |
3.4.3, 3.4 | 3.4.3/Dockerfile |
3.4.3-nouveau, 3.4-nouveau | 3.4.3-nouveau/Dockerfile |
通过以下命令启动一个基本的 CouchDB 容器:
$ docker run -d --name my-couchdb amd64/couchdb:latest
--name my-couchdb:指定容器名称为 my-couchdb。amd64/couchdb:latest:使用最新版本的 amd64 架构 CouchDB 镜像。CouchDB 默认暴露 5984 端口,可通过容器链接使其他应用容器访问。例如,启动一个依赖 CouchDB 的应用容器:
$ docker run --name my-app --link my-couchdb:couchdb -d app-that-uses-couchdb
--link my-couchdb:couchdb:将 my-couchdb 容器链接到当前应用容器,并以 couchdb 为别名,应用可通过 couchdb:5984 访问数据库。若需从宿主机或外部网络访问 CouchDB,需映射容器端口到宿主机:
$ docker run -p 5984:5984 -d amd64/couchdb:latest
警告:暴露端口前需确保已创建管理员用户并正确配置数据库权限,避免未授权访问。
通过环境变量 COUCHDB_USER 和 COUCHDB_PASSWORD 创建管理员用户:
$ docker run -d \ -e COUCHDB_USER=admin \ -e COUCHDB_PASSWORD=securepassword \ -p 5984:5984 \ --name couchdb-node1 \ amd64/couchdb:latest
NODENAME(节点名称)和 Erlang Cookie(集群节点间通信密钥):# 节点 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 文件:
version: '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 卷持久化数据
启动集群:
$ docker-compose up -d
通过 docker exec 进入容器命令行:
$ docker exec -it my-couchdb bash
直接与 CouchDB 的 Erlang 运行时交互:
$ docker exec -it my-couchdb /opt/couchdb/bin/remsh
CouchDB 日志输出到标准输出,可通过 docker logs 查看:
$ 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 目录,需通过以下方式持久化:
使用 Docker 托管卷,自动管理存储路径和权限:
$ docker run -d \ -v couchdb-data:/opt/couchdb/data \ --name my-couchdb \ amd64/couchdb:latest
将宿主机目录直接挂载到容器(需确保宿主机目录权限正确,CouchDB 运行用户 UID 为 5984):
$ 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,推荐通过以下方式自定义配置:
将宿主机配置目录挂载到容器 /opt/couchdb/etc/local.d(动态配置文件目录):
$ docker run -d \ -v /home/couchdb/etc:/opt/couchdb/etc/local.d \ --name my-couchdb \ amd64/couchdb:latest
在宿主机 /home/couchdb/etc 下创建 .ini 文件(如 custom.ini),配置会被自动加载。
创建 Dockerfile 复制自定义配置文件:
FROM amd64/couchdb:latest COPY custom.ini /opt/couchdb/etc/local.d/
构建并运行:
$ docker build -t my-custom-couchdb . $ docker run -d -p 5984:5984 my-custom-couchdb
CouchDB 不会自动创建系统数据库(_global_changes、_replicator、_users),需通过以下方式创建:
curl -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)中添加:
[log] writer = file file = /opt/couchdb/log/couch.log level = info # 日志级别:debug, info, warn, error
挂载日志目录到宿主机(避免容器内日志占用过多空间):
$ 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 采用 Apache 许可证。Docker 镜像中可能包含其他软件(如基础系统组件、依赖库等),其许可证需参考各软件自身的许可协议。
镜像元数据和许可证信息可参考 repo-info 仓库的 couchdb 目录。使用前请确保遵守所有包含软件的许可条款。
amd64、arm64v8、s390x免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429