** 注意 :这是 couchdb 镜像 的 arm64v8 架构构建的“按架构”仓库——更多信息,请参见镜像文档中的“除 amd64 之外的架构?”以及*镜像 FAQ 中的“Git 中镜像的源已更改,现在该怎么办?”。
-** 维护者 **:
Apache CouchDB
-** 获取帮助 **:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接latest, 3.5.0, 3.5, 3
3.5.0-nouveau, 3.5-nouveau, 3-nouveau
3.4.3, 3.4
3.4.3-nouveau, 3.4-nouveau
-** 问题提交地址 :
[*]
-** 支持的架构 **:(更多信息)
amd64、arm64v8、s390x
-** 已发布镜像 artifact 详情 **:
repo-info 仓库的 repos/couchdb/ 目录(历史记录)
(镜像元数据、传输大小等)
-** 镜像更新 **:
official-images 仓库的 library/couchdb 标签
official-images 仓库的 library/couchdb 文件(历史记录)
-** 本描述的来源 **:
docs 仓库的 couchdb/ 目录(历史记录)
Apache CouchDB™ 允许您通过定义 Couch 复制协议在需要的地方访问数据,该协议由各种项目和产品实现,涵盖从全球分布式服务器集群、移动电话到 Web 浏览器的各种计算环境。与 Couch 复制协议兼容的软件包括 PouchDB 和 Cloudant。
安全地存储您的数据,无论是在自己的服务器上还是在任何领先的云提供商处。Web 和原生应用都喜爱 CouchDB,因为它原生支持 JSON,并支持二进制数据以满足所有数据存储需求。Couch 复制协议让您的数据在服务器集群、移动电话和 Web 浏览器之间无缝流动,实现引人入胜的离线优先用户体验,同时保持高性能和强可靠性。CouchDB 提供开发友好的查询语言,并可选支持 MapReduce,以实现简单、高效和全面的数据检索。
couchdb.apache.org
!logo
启动 CouchDB 实例非常简单:
console$ docker run -d --name my-couchdb arm64v8/couchdb:tag
其中 my-couchdb 是您要分配给容器的名称,tag 是指定所需 CouchDB 版本的标签。请参见上文列表获取相关标签。
本镜像暴露标准 CouchDB 端口 5984,因此标准容器链接会使其自动对链接的容器可用。按如下方式启动应用容器以将其链接到 CouchDB 容器:
console$ docker run --name my-couchdb-app --link my-couchdb:couchdb -d app-that-uses-couchdb
如果要将端口暴露到外部网络,请运行:
console$ docker run -p 5984:5984 -d arm64v8/couchdb
警告:在创建管理员用户并正确设置任何已创建数据库的权限之前,请勿执行此操作。
如果您打算将此 CouchDB 实例与集群中的其他实例联网,则需要映射额外的端口;有关详细信息,请参见 *** CouchDB 文档。
启动多个 CouchDB 实例,然后按照 *** CouchDB 文档 中的设置向导完成过程。
对于 CouchDB 集群,您需要提供 NODENAME 设置以及 Erlang cookie。可以使用环境变量 ERL_FLAGS 对 Erlang 进行设置,例如 ERL_FLAGS=-setcookie "brumbrum"。更多信息可参见 此处。
此外,还有一个 Kubernetes helm chart 可用。
remsh 和查看日志docker exec 命令允许您在 Docker 容器内运行命令。以下命令将为您提供 couchdb 容器内的 bash shell:
console$ docker exec -it my-couchdb bash
如果需要直接访问 Erlang 运行时:
console$ docker exec -it my-couchdb /opt/couchdb/bin/remsh
CouchDB 日志可通过 Docker 的容器日志查看:
console$ docker logs my-couchdb
为 couchdb 镜像提供配置的最佳方式是提供自定义 ini 文件给 CouchDB,最好存储在 /opt/couchdb/etc/local.d/ 目录中。有多种方式可将此文件提供给容器(通过简短的 Dockerfile 使用 FROM + COPY、通过 Docker Configs、通过运行时绑定挂载等),具体细节留给读者自行探索。
请记住,CouchDB 的运行时重新配置将覆盖 配置链中的最后一个文件,并且此 Docker 容器在启动时会创建 /opt/couchdb/etc/local.d/docker.ini 文件。
CouchDB 还使用 /opt/couchdb/etc/vm.args 存储 Erlang 运行时特定的更改。更改这些值不太常见。例如,如果需要更改 epmd 端口,则也需要绑定挂载此文件。(注意:Windows 主机上无法绑定挂载文件。)
此外,提供了一些环境变量用于设置非常常见的参数:
COUCHDB_USER 和 COUCHDB_PASSWORD 将在文件 /opt/couchdb/etc/local.d/docker.ini 中创建基于 ini 文件的本地管理员用户,具有给定的用户名和密码。COUCHDB_SECRET 将在文件 /opt/couchdb/etc/local.d/docker.ini 中设置 CouchDB 共享集群密钥值。NODENAME 将容器内 CouchDB 节点的名称设置为 couchdb@${NODENAME},位于文件 /opt/couchdb/etc/vm.args 中。这用于集群目的,单节点设置可忽略。ERL_FLAGS)将被 Erlang 本身使用。完整列表可参见 此处重要提示:有多种方式存储 Docker 容器中运行的应用所使用的数据。我们鼓励 couchdb 镜像的用户熟悉可用选项,包括:
Docker 文档是了解不同存储选项和变体的良好起点,有多个博客和论坛帖子讨论并提供了该领域的建议。我们在此仅展示上述后一种选项的基本过程:
/home/couchdb/data。couchdb 容器:bash$ docker run --name some-couchdb -v /home/couchdb/data:/opt/couchdb/data -d arm64v8/couchdb:tag
命令中的 -v /home/couchdb/data:/opt/couchdb/data 部分将主机系统的 /home/couchdb/data 目录挂载为容器内的 /opt/couchdb/data,CouchDB 默认会在此处写入其数据文件。
请注意,CouchDB 不再自动为您创建系统数据库,因为在启动时无法确定这是单节点还是集群 CouchDB 安装。在集群中,数据库必须仅在所有节点加入后创建一次。
如果您使用 集群设置向导 或 集群设置 API,完成过程后将为您创建这些数据库。
如果您选择不使用集群设置向导或 API,则必须手动创建 _global_changes、_replicator 和 _users。
节点还将以 管理员模式 启动。请务必创建管理员用户!集群设置向导 或 集群设置 API 将为您完成此操作。
您也可以使用两个环境变量 COUCHDB_USER 和 COUCHDB_PASSWORD 来设置管理员用户:
console$ docker run -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -d arm64v8/couchdb
注意,如果您要设置集群化 CouchDB,需要预哈希此密码并在所有节点上使用相同的哈希文本,以确保在集群前放置负载均衡器时会话正常工作。可以通过将容器的 /opt/couchdb/etc/local.d 目录挂载为卷来实现哈希,允许 CouchDB 哈希您设置的密码,然后复制出哈希版本并在将来使用此值。
CouchDB 配置在 /opt/couchdb/etc 中的 .ini 文件中指定。查看 CouchDB 配置文档 以了解更多关于 CouchDB 配置结构的信息。
如果要使用自定义的 CouchDB 配置,可以在主机上的目录中创建配置文件,然后将该目录挂载为 couchdb 容器内的 /opt/couchdb/etc/local.d。
console$ docker run --name my-couchdb -v /home/couchdb/etc:/opt/couchdb/etc/local.d -d arm64v8/couchdb
命令中的 -v /home/couchdb/etc:/opt/couchdb/etc/local.d 部分将主机系统的 /home/couchdb/etc 目录挂载为容器内的 /opt/couchdb/etc/local.d,CouchDB 默认会在此处写入其动态配置文件。
您也可以使用 couchdb 作为自己的 couchdb 实例的基础镜像,并提供自己版本的 local.ini 配置文件:
示例 Dockerfile:
dockerfileFROM arm64v8/couchdb COPY local.ini /opt/couchdb/etc/
然后构建并运行:
console$ docker build -t you/awesome-couchdb . $ docker run -d -p 5984:5984 you/awesome-couchdb
请记住,使用此方法,任何新写入的更改仍会出现在 /opt/couchdb/etc/local.d 目录中,因此仍建议将其映射到主机路径以实现持久化。
默认情况下,从此镜像运行的容器仅记录到 stdout。您可以在 配置 中启用文件日志记录。
例如,在 local.ini 中:
ini[log] writer = file file = /opt/couchdb/log/couch.log
建议将此路径挂载到主机上的目录,因为 CouchDB 日志可能非常庞大。
Apache CouchDB 根据 Apache 许可证 授权。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证(如基础发行版中的 Bash 等,以及主软件的任何直接或间接依赖项)约束。
一些能够自动检测到的额外许可证信息可能位于 repo-info 仓库的 couchdb/ 目录 中。
至于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用符合其中包含的所有软件的相关许可证。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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