快速参考
-
维护者:
Couchbase Docker 团队 -
获取帮助的途径:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
支持的标签和相应的 Dockerfile 链接
快速参考(续)
-
已发布的映像工件详细信息:
repo-info repo 的repos/couchbase/目录(历史记录)
(图像元数据、传输大小等) -
图像更新:
官方镜像仓库的library/couchbase标签
官方镜像仓库的library/couchbase文件(历史记录) -
来源:此描述的来源:
docs 存储库的couchbase/目录(历史记录)
Couchbase Server 简介
基于最强大的 NoSQL 技术,Couchbase Server 在任何云中都能提供无与伦比的规模性能。凭借内存优先架构、地理分布式部署和工作负载隔离等功能,Couchbase Server 擅长在支持关键任务应用程序的同时保持亚毫秒级延迟和 99.999%的可用性。此外,借助最全面的 SQL 兼容查询语言 (N1QL),通过 ANSI 连接从 RDBMS 迁移到 Couchbase Server 非常容易。
无与伦比的敏捷性和灵活性
使用 JSON 的灵活性和全面查询语言 (N1QL) 的强大功能来支持快速变化的业务需求。通过单一平台的多种访问方法(键值、查询和搜索)开发引人入胜的应用程序。事件驱动的工作负载允许您从集中式平台执行数据驱动的业务逻辑。
在任何规模下都具有无与伦比的性能
通过内存优先架构,大规模提供一致、快速的体验。高性能索引和索引分区在复杂连接、谓词和聚合评估方面提供了无与伦比的查询性能。而且,通过端到端数据压缩,Couchbase 显著降低了现有工作负载所需的网络、内存和存储成本。
最简单的管理平台
在任何云环境中,以任何规模部署 Couchbase Server。通过 Kubernetes 等云集成减少运营开销,并通过内置的主动-主动跨数据中心复制 (XDCR) 支持全球多云部署。

使用 Couchbase Server 和 Docker 快速入门
以下是如何在 Docker 容器中运行单个节点的 Couchbase Server 集群:
步骤 - 1:运行 Couchbase Server Docker 容器
docker run -d --name db -p 8091-8097:8091-8097 -p 9123:9123 -p 11207:11207 -p 11210:11210 -p 11280:11280 -p 18091-18097:18091-18097 couchbase
注意:Couchbase Server 可能需要根据使用场景暴露各种端口。请参阅 https://docs.couchbase.com/server/current/install/install-ports.html 以获取更多信息。
步骤 - 2:接下来,在主机上访问 http://localhost:8091 以查看 Web 控制台,开始 Couchbase Server 设置。

完成安装向导并接受默认值。
- 注意:您可能需要降低分配给各种服务的 RAM,以适应容器资源的限制。
- 启用 beer-sample 存储桶以加载一些示例数据。




注意:有关配置服务器的详细信息,请参阅部署指南。
在 Couchbase Server 集群上运行 N1QL 查询
N1QL 是 Couchbase Server 的基于 SQL 的查询语言。只需在 Web 控制台的 http://localhost:8091 上切换到查询选项卡,然后在查询窗口中运行以下 N1QL 查询:
SELECT name FROM `beer-sample` WHERE brewery_id="mishawaka_brewing";
您还可以从命令行执行 N1QL 查询。要从命令行查询工具运行查询,请运行 cbq 命令行工具,使用您提供给向导的凭据进行身份验证,并在 beer-sample 存储桶上执行 N1QL 查询。
$ docker exec -it db cbq --user Administrator
cbq> SELECT name FROM `beer-sample` WHERE brewery_id ="mishawaka_brewing";
如需更多查询示例,请参阅运行您的第一个 N1QL 查询。
通过应用程序和 SDK 连接到 Couchbase 服务器集群
Couchbase Server SDK 支持多种语言:C、Go、Java、.NET、Node.js、PHP、Python。只需在主机上通过您选择的 Couchbase Server SDK 运行您的应用程序,并将其指向 http://localhost:8091/pools 以连接到容器。
若要运行示例应用程序,请参阅示例应用程序指南。
需求和最佳实践
容器要求
Docker Hub 上的官方 Couchbase Server 映像基于最新支持的 Ubuntu 版本。
Docker 容器资源要求:对于最低容器要求,您可以遵循开发、测试和生产环境的系统资源要求。
最佳实践
避免单点故障:Couchbase Server 的弹性和高可用性是通过创建独立节点集群并在它们之间复制数据来实现的,这样任何单个节点故障都不会导致无法访问您的数据。在容器化环境中,如果您要在同一物理硬件上运行多个节点,则可能会无意中重新引入单点故障。在您控制 VM 放置的环境中,我们建议确保每个 Couchbase Server 节点在不同的物理硬件上运行。
调整容器大小:物理硬件性能特征是众所周知的。尽管容器在 Couchbase Server 和底层操作系统之间插入了一个轻量级层,但在容器中运行 Couchbase Server 仍然存在少量开销。为了稳定性和更好的性能可预测性,建议在开发环境中为容器至少分配 2 个核心,在生产环境中为容器分配 4 个核心,而不是在多个容器之间共享。在过度承诺的环境中,您可能会遇到容器相互竞争的情况,导致性能不可预测,有时还会出现稳定性问题。
将 Couchbase 节点特定数据映射到本地文件夹:默认情况下,Couchbase Server Docker 容器将在目录 /opt/couchbase/var 下写入所有持久性和节点特定数据。建议使用 -v 选项将此目录映射到主机文件系统上的目录 docker run ,以获得持久性和性能。
-
持久性:使用
-v选项将/opt/couchbase/var存储在容器外部,允许您删除容器并在以后重新创建它,而不会丢失 Couchbase Server 中的数据。您甚至可以更新到运行更高版本的 Couchbase Server 的容器,而不会丢失数据。 -
性能:在使用联合文件系统的标准 Docker 环境中,在容器内留下
/opt/couchbase/var会导致一定程度的性能下降。
注意 SELinux:如果启用了 SELinux,在容器中挂载主机卷需要额外的步骤。假设您要挂载主机文件系统上的 ~/couchbase 目录,则需要在该主机上运行第一个容器之前运行以下命令一次:
mkdir ~/couchbase && chcon -Rt svirt_sandbox_file_t ~/couchbase
在生产部署中增加 ULIMIT:Couchbase Server 通常期望对 ulimits 进行以下更改:
ulimit -n 200000 # nofile: max number of open files
ulimit -l unlimited # memlock: maximum locked-in-memory address space
这些 ulimit 设置在高负载运行时是必要的。如果您只是进行轻量级测试和开发,则可以省略这些设置,一切仍将正常工作。
要在容器中设置 ulimits,您需要使用以下附加 --ulimit 标志运行 Couchbase Docker 容器:
docker run -d --ulimit nofile=40960:40960 --ulimit core=100000000:100000000 --ulimit memlock=100000000:100000000 --name db -p 8091-8097:8091-8097 -p 9123:9123 -p 11207:11207 -p 11210:11210 -p 11280:11280 -p 18091-18097:18091-18097 couchbase
由于“unlimited”不被支持作为一个值,它将 core 和 memlock 的值设置为 100GB。如果您的系统有超过 100GB 的内存,您将需要增加这个值以匹配系统上可用的内存。
注意: --ulimit 标志仅在 Docker 1.6 或更高版本上有效。
网络配置和端口:Couchbase Server 在许多不同的端口上进行通信(请参阅 Couchbase Server 文档)。此外,通常不支持将群集节点放在任何 NAT 后面。由于这些原因,Docker 的默认网络配置并不完全适合 Couchbase Server 部署。对于生产部署,建议使用 --net=host 设置以避免性能和可靠性问题。
多节点 Couchbase 服务器集群部署拓扑
在多节点 Couchbase Server 集群中,有两种流行的拓扑结构。
一台物理机上的所有 Couchbase Server 容器
该模型通常用于模拟生产部署的规模最小化部署,以用于开发和测试目的。将所有容器放在单个物理机上意味着所有容器将竞争相同的资源。将所有容器放在单个物理机上还消除了复制提供的针对 Couchbase Server 节点故障的内置保护。当单个物理机发生故障时,所有容器同时无法使用,从而丢失所有副本。这些限制对于测试系统可能是可以接受的,但不建议在生产中的应用程序使用。
您可以在 Couchbase Server 文档中找到有关在此拓扑中设置 Couchbase Server 的更多详细信息。
┌──────────────────────────────────────────────────────────┐
│ Host OS (Linux) │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Container OS │ │ Container OS │ │ Container OS │ │
│ │ (Ubuntu) │ │ (Ubuntu) │ │ (Ubuntu) │ │
│ │ ┌───────────┐ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │
│ │ │ Couchbase │ │ │ │ Couchbase │ │ │ │ Couchbase │ │ │
│ │ │ Server │ │ │ │ Server │ │ │ │ Server │ │ │
│ │ └───────────┘ │ │ └───────────┘ │ │ └───────────┘ │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
└──────────────────────────────────────────────────────────┘
每个 Couchbase Server 容器在其自己的机器上
该模型通常用于生产部署。它可以防止 Couchbase Server 节点相互跨越,并为您提供更好的性能可预测性。这是 Couchbase Server 5.5 及更高版本在生产中支持的拓扑结构。
您可以在 Couchbase Server 文档中找到有关在此拓扑中设置 Couchbase Server 的更多详细信息。
┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐
│ Host OS (Linux) │ │ Host OS (Linux) │ │ Host OS (Linux) │
│ ┌─────────────────┐ │ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │
│ │ Container OS │ │ │ │ Container OS │ │ │ │ Container OS │ │
│ │ (Ubuntu) │ │ │ │ (Ubuntu) │ │ │ │ (Ubuntu) │ │
│ │ ┌───────────┐ │ │ │ │ ┌───────────┐ │ │ │ │ ┌───────────┐ │ │
│ │ │ Couchbase │ │ │ │ │ │ Couchbase │ │ │ │ │ │ Couchbase │ │ │
│ │ │ Server │ │ │ │ │ │ Server │ │ │ │ │ │ Server │ │ │
│ │ └───────────┘ │ │ │ │ └───────────┘ │ │ │ │ └───────────┘ │ │
│ └─────────────────┘ │ │ └─────────────────┘ │ │ └─────────────────┘ │
└───────────────────────┘ └───────────────────────┘ └───────────────────────┘
免费试用 Couchbase Cloud
Couchbase Cloud 是一款面向关键任务应用程序的全托管 NoSQL 数据库即服务 (DBaaS)。我们在您的 AWS VPC 中部署 Couchbase Cloud 并管理工作负载。您将享受令人难以置信的性价比和运营透明度。
开始免费试用 - https://cloud.couchbase.com/sign-up
附加参考资料
许可证
Couchbase Server 有两个版本:企业版和社区版。您可以在 Couchbase Server 版本页面上找到两者之间的差异和许可信息的详细信息。
-
企业版 -- 企业版许可证允许免费进行 Couchbase 企业版的开发和测试。生产部署需要付费订阅。有关 Couchbase 企业版的详细信息,请参考定价页面。
-
社区版 -- 社区版许可证允许免费部署 Couchbase 社区版,用于部门级规模的部署,最多可支持五个节点集群。最近,它已被更改,不允许使用 XDCR,而 XDCR 现在是企业版的独家功能。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证的约束(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 couchbase/ 目录中找到。
对于任何预构建的映像使用,映像用户有责任确保对此映像的任何使用都符合其中包含的所有软件的任何相关许可证。