Skip to content

快速参考

  • 由……维护
    Aerospike 公司。

  • 何处获取帮助:
    Docker 社区 Slack、服务器故障、Unix & Linux 或 Stack Overflow

支持的标签及相应的 Dockerfile 链接

快速参考(续)

  • 在哪里提交问题:
    Aerospike 论坛或 GitHub

  • 支持的架构:(更多信息)
    amd64, arm64v8

  • 已发布的图像工件详细信息:
    仓库信息 仓库的 repos/aerospike/ 目录(历史)
    (图像元数据、传输大小等)

  • 图像更新:
    官方镜像仓库的 library/aerospike 标签
    官方镜像仓库的 library/aerospike 文件(历史记录)

  • 此描述的来源:
    文档库的 aerospike/ 目录(历史)

Aerospike 数据库 Docker 镜像

什么是 Aerospike?

Aerospike 是一个专门为高性能网络规模应用而设计的分布式 NoSQL 数据库。Aerospike 支持键值和文档数据模型,并具有多种数据类型,包括列表、映射、HyperLogLog、GeoJSON 和 Blob。Aerospike 获得专利的混合内存架构在规模上提供可预测的高性能和每个节点的高数据密度。

logo

开始入门

Aerospike 企业版需要一个功能密钥文件来启动并解锁数据库中的某些功能,例如压缩。企业客户可以使用他们的生产或开发密钥。

任何人都可以注册以获取功能齐全的单节点 Aerospike 企业版的评估功能密钥文件。

Aerospike 社区版支持与 Aerospike 企业版相同的开发者 API,在操作便利性和企业功能方面有所不同。更多信息请参见产品矩阵。

在映射目录中使用功能密钥文件运行 Aerospike EE 节点

docker run -d -v DIR:/opt/aerospike/etc/ -e "FEATURE_KEY_FILE=/opt/aerospike/etc/features.conf" --name aerospike -p 3000-3002:3000-3002 aerospike:ee-[version]

以上,DIR 是你机器上的一个目录,你将功能密钥文件放置于此。确保 Docker Desktop 具有文件共享权限,以便将其绑定挂载到 Docker 容器中。

在环境变量中使用功能密钥文件运行节点

FEATKEY=$(base64 ~/Desktop/evaluation-features.conf)
docker run -d -e "FEATURES=$FEATKEY" -e "FEATURE_KEY_FILE=env-b64:FEATURES" --name aerospike -p 3000-3002:3000-3002 aerospike:ee-[version]

运行一个 Aerospike CE 节点

docker run -d --name aerospike -p 3000-3002:3000-3002 aerospike:ce-[version]

高级配置

Aerospike Docker 镜像有一个默认的配置文件模板,可以用单独的配置参数填充,就像我们之前用 FEATURE_KEY_FILE 做的那样。或者,它可以被一个自定义配置文件替换。

以下部分描述了这两个高级选项。

注入配置参数

你可以使用带有 -e 标志的容器端环境变量将参数注入配置模板。

例如,要将默认命名空间名称设置为 demo:

docker run -d --name aerospike -e "NAMESPACE=demo" -p 3000-3002:3000-3002 -v /my/dir:/opt/aerospike/etc/ -e "FEATURE_KEY_FILE=/opt/aerospike/etc/features.conf" aerospike:ee-[version]

将配置参数注入配置模板与使用自定义配置文件不兼容。你可以使用其中之一。

模板变量列表

  • FEATURE_KEY_FILE - 仅针对 EE 镜像需要 feature_key_file 。默认值:/etc/aerospike/features.conf
  • SERVICE_THREADS - 该 service_threads 。默认值:vCPU 的数量
  • LOGFILE - logging 上下文的 file 参数。默认值:/dev/null,不记录到文件,记录到标准输出
  • SERVICE_ADDRESS - networking.service 子上下文的绑定 address 。默认值:任意
  • SERVICE_PORT - networking.service 子上下文的 port 。默认值:3000
  • HB_ADDRESS - 用于跨集群网格的 networking.heartbeat address 。默认值:任意
  • HB_PORT - 用于 networking.heartbeat 通信的 port 。默认值:3002
  • FABRIC_ADDRESS - networking.fabric 子上下文的 address 。默认值:任意
  • FABRIC_PORT - networking.fabric 子上下文的 port 。默认值:3001

单个预配置的命名空间在内存中并具有文件系统持久性

  • NAMESPACE - 命名空间的名称。默认值:测试
  • REPL_FACTOR - replication-factor 的命名空间。默认值:2
  • MEM_GB - memory-size 的命名空间。默认值:1,单位始终是 G (GB)
  • DEFAULT_TTL - default-ttl 的命名空间。默认值:30 天
  • STORAGE_GB - 命名空间持久化 file 大小。默认值:4,单位始终是 G (GB)
  • NSUP_PERIOD - nsup-period 的命名空间。默认值:120,以秒为单位的 nsup 周期

使用自定义配置文件

您可以通过提供自己的 aerospike.conf 来覆盖配置文件模板的使用,如在“配置 Aerospike 数据库”中所述。

你应首先 -v 映射一个本地目录,Docker 将进行绑定挂载。接下来,将你的 aerospike.conf 文件放入此目录。最后,使用 --config-file 选项告知 Aerospike 在容器中配置文件的位置(默认路径是 /etc/aerospike/aerospike.conf)。请记住需要功能密钥文件,因此在你的配置文件中使用 feature-key-file 指向一个已挂载的路径(例如 /opt/aerospike/etc/feature.conf)。

例如:

docker run -d -v /opt/aerospike/etc/:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 aerospike:ee-[version] --config-file /opt/aerospike/etc/aerospike.conf

持久数据目录

使用 Docker 时,容器内的文件在容器生命周期结束后不会持久化。要持久化数据,您需要使用 -v 选项将主机上的目录挂载到容器的 /opt/aerospike/data:

例如:

docker run -d  -v /opt/aerospike/data:/opt/aerospike/data  -v /opt/aerospike/etc:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 -e "FEATURE_KEY_FILE=/opt/aerospike/etc/features.conf" aerospike:ee-[version]

上面的示例使用配置模板,其中单个定义的命名空间是基于文件持久化的内存中。只需挂载预定义的 /opt/aerospike/data 目录,即可使数据在主机上持久化。

或者,使用自定义配置文件,将参数 file 设置为挂载的 /opt/aerospike/data 中的文件,例如在以下配置片段中:

namespace test {
    # :
    storage-engine device {
        file /opt/aerospike/data/test.dat
        filesize 4G
        data-in-memory true
    }
}

在这个例子中,我们也以类似的方式挂载数据目录,使用自定义配置文件。

docker run -d -v /opt/aerospike/data:/opt/aerospike/data -v /opt/aerospike/etc/:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 aerospike:ee-[version] --config-file /opt/aerospike/etc/aerospike.conf

块存储

Docker 提供了将主机的块设备暴露给正在运行的容器的能力。 --device 选项可用于在容器内映射主机块设备。

在自定义的 Aerospike 配置文件中更新命名空间的 storage-engine device 部分。

namespace test {
    # :
    storage-engine device {
        device /dev/xvdc
            write-block-size 128k
    }
}

现在要将主机驱动器 /dev/sdc 映射到容器上的 /dev/xvdc

docker run -d --device '/dev/sdc:/dev/xvdc' -v /opt/aerospike/etc/:/opt/aerospike/etc/ --name aerospike -p 3000-3002:3000-3002 aerospike:ee-[version] --config-file /opt/aerospike/etc/aerospike.conf

持久 Lua 缓存

重新启动后,你的 lua 缓存将被清空。要保留缓存,你需要使用 -v 选项将主机上的一个目录挂载到容器的 /opt/aerospike/usr/udf/lua

docker run -d -v /opt/aerospike/lua:/opt/aerospike/usr/udf/lua -v /opt/aerospike/data:/opt/aerospike/data --name aerospike -p 3000-3002:3000-3002 -e "FEATURE_KEY_FILE=/opt/etc/aerospike/features.conf" aerospike:ee-[version]

聚类

使用 Aerospike EE 单节点评估的开发人员,以及在其机器上使用 Docker Desktop 进行开发的大多数其他人员,将不需要为集群配置节点。如果您对使用集群感兴趣并且有一个没有单节点限制的功能密钥文件,请阅读以下部分。

配置节点的访问地址

为了使 Aerospike 节点能够正确地向集群和应用程序广播其地址,需要在配置文件中设置 access-address 配置参数。如果未设置,则将使用容器内的 IP 地址,而其他节点无法访问该地址。

    network {
        service {
            address any                  # Listening IP Address
            port 3000                    # Listening Port
            access-address 192.168.1.100 # IP Address used by cluster nodes and applications
        }

网格聚类

网状网络需要在集群中的每个节点之间建立链路。这可以通过两种方式实现:

  1. 按照网络心跳配置中所定义的,为集群中的每个节点添加一个配置。
  2. 使用 asinfo 发送 tip 命令,以使节点知晓另一个节点,如 asinfo 中的 tip 命令所定义。

有关更多信息,请参阅如何在 Docker 中快速运行具有 2 个节点的 Aerospike 集群而无需编辑单个文件?

图像版本

这些图像基于 ubuntu:22.04。

ee-[版本]

这些标签用于 Aerospike EE 图像,并且将需要一个功能密钥文件,例如你在单节点 EE 评估中获得的那个,或者与商业企业许可协议相关联的那个。

ce-[版本]

这些标签用于 Aerospike CE 镜像,并且不需要功能密钥文件即可启动。如上所述,两者的开发人员 API 是相同的,但版本在操作功能上有所不同。

报告问题

如果您对该图像有任何问题或疑问,请在 Aerospike 讨论论坛上发布。

企业客户欢迎参与社区论坛,但也可以通过企业支持系统报告问题。

Aerospike EE 评估用户可以在 aerospike/aerospike-server-enterprise.docker 中打开一个问题。

Aerospike CE 用户可以在 aerospike/aerospike-server.docker 中打开一个问题。

许可证

版权所有 2019-2021 年 Aerospike 公司。

如果您正在使用作为您的商业企业许可证的一部分收到的功能密钥文件,那么您是在 Aerospike 主许可协议下进行操作。

如果您正在使用 Aerospike 数据库企业版评估功能密钥文件,您是在 Aerospike 评估许可协议下操作。

如果您正在使用 Aerospike 数据库 CE,请参考 aerospike/aerospike-server 存储库中的许可信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 aerospike/ 目录中找到。

对于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用都符合其中包含的所有软件的任何相关许可证。