bitnamisecure/valkeyValkey 是一个高性能数据结构服务器,主要用于处理键/值工作负载。它支持多种原生数据结构和可扩展的插件系统,用于添加新的数据结构和访问模式。
Valkey 概述
商标声明:本软件列表由 Bitnami 打包。所提及的相关商标归各自公司所有,使用这些商标并不意味着任何关联或背书。
consoledocker run --name valkey -e ALLOW_EMPTY_PASSWORD=yes REGISTRY_NAME/bitnami/valkey:latest
警告:这些快速设置仅适用于开发环境。建议您更改不安全的默认凭据,并查看配置部分中的可用配置选项,以实现更安全的部署。
这些是由 Bitnami 构建和维护的强化、最小化 CVE 镜像。Bitnami 安全镜像基于云优化、安全强化的企业级 OS Photon Linux。选择 BSI 镜像的理由:
每个镜像都附带有价值的安全元数据。您可以在 我们的公共目录 中查看元数据。注意:某些数据仅对 BSI 商业订阅用户 开放。
!应用详情 !打包报告
如果您正在寻找基于 Debian Linux 的上一代镜像,请参见 Bitnami Legacy 仓库。
将 Bitnami 应用部署为 Helm Chart 是在 Kubernetes 上使用我们应用的最简单方式。有关安装的更多信息,请参见 Bitnami Valkey Chart GitHub 仓库。
非 root 容器镜像增加了一层额外的安全性,通常推荐用于生产环境。但是,由于它们以非 root 用户运行,通常无法执行特权任务。在 我们的文档 中了解更多关于非 root 容器的信息。
Dockerfile 链接了解 Bitnami 标签策略以及滚动标签和不可变标签之间的区别,请参见 我们的文档页面。
您可以通过查看分支文件夹中的 tags-info.yaml 文件(即 bitnami/ASSET/BRANCH/DISTRO/tags-info.yaml)来了解不同标签之间的对应关系。
通过关注 bitnami/containers GitHub 仓库 订阅项目更新。
获取 Bitnami Valkey Docker 镜像的推荐方式是从 Docker Hub 仓库 拉取预构建镜像。
consoledocker pull REGISTRY_NAME/bitnami/valkey:latest
要使用特定版本,您可以拉取带版本的标签。您可以在 Docker Hub 仓库中查看 可用版本列表。
consoledocker pull REGISTRY_NAME/bitnami/valkey:[TAG]
如果需要,您也可以通过克隆仓库、切换到包含 Dockerfile 的目录并执行 docker build 命令来自建镜像。请记住在以下示例命令中用正确的值替换 APP、VERSION 和 OPERATING-SYSTEM 路径占位符。
consolegit clone [***] cd bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t REGISTRY_NAME/bitnami/APP:latest .
Valkey 提供多种 持久化选项。此容器默认使用 AOF 持久化,但您可以在 docker-compose.yaml 文件中通过添加 command: /opt/bitnami/scripts/valkey/run.sh --appendonly no 来覆盖此配置。或者,您也可以使用 VALKEY_AOF_ENABLED 环境变量,如 禁用 AOF 持久化 中所述。
如果删除容器,所有数据都将丢失,下次运行镜像时数据库将重新初始化。为避免数据丢失,您应该挂载一个在容器删除后仍能保留的卷。
要实现持久化,您应该在 /bitnami 路径挂载一个目录。如果挂载的目录为空,将在首次运行时初始化。
consoledocker run \ -e ALLOW_EMPTY_PASSWORD=yes \ -v /path/to/valkey-persistence:/bitnami/valkey/data \ REGISTRY_NAME/bitnami/valkey:latest
您也可以通过修改此仓库中的 docker-compose.yml 文件来实现:
yamlservices: valkey: ... volumes: - /path/to/valkey-persistence:/bitnami/valkey/data ...
注意:由于这是一个非 root 容器,挂载的文件和目录必须对 UID
1001具有适当的权限。
使用 Docker 容器网络,运行在容器内的 Valkey 服务器可以轻松被应用容器访问。
连接到同一网络的容器可以使用容器名称作为主机名进行通信。
在此示例中,我们将创建一个 Valkey 客户端实例,它将连接到与客户端在同一 docker 网络上运行的服务器实例。
consoledocker network create app-tier --driver bridge
使用 --network app-tier 参数执行 docker run 命令,将 Valkey 容器附加到 app-tier 网络。
consoledocker run -d --name valkey-server \ -e ALLOW_EMPTY_PASSWORD=yes \ --network app-tier \ REGISTRY_NAME/bitnami/valkey:latest
最后,我们创建一个新的容器实例来启动 Valkey 客户端,并连接到上一步创建的服务器:
consoledocker run -it --rm \ --network app-tier \ REGISTRY_NAME/bitnami/valkey:latest valkey-cli -h valkey-server
未指定时,Docker Compose 会自动设置一个新网络,并将所有部署的服务附加到该网络。但是,我们将显式定义一个名为 app-tier 的新 bridge 网络。在此示例中,假设您希望从自己的自定义应用镜像(在以下代码片段中由服务名称 myapp 标识)连接到 Valkey 服务器。
yamlversion: '2' networks: app-tier: driver: bridge services: valkey: image: REGISTRY_NAME/bitnami/valkey:latest environment: - ALLOW_EMPTY_PASSWORD=yes networks: - app-tier myapp: image: YOUR_APPLICATION_IMAGE networks: - app-tier
重要提示:
- 请将上述代码片段中的 YOUR_APPLICATION_IMAGE 占位符替换为您的应用镜像
- 在应用容器中,使用主机名
valkey连接到 Valkey 服务器
使用以下命令启动容器:
consoledocker-compose up -d
| 名称 | 描述 | 默认值 |
|---|---|---|
VALKEY_DATA_DIR | Valkey 数据目录 | ${VALKEY_VOLUME_DIR}/data |
VALKEY_OVERRIDES_FILE | Valkey 配置覆盖文件 | ${VALKEY_MOUNTED_CONF_DIR}/overrides.conf |
VALKEY_DISABLE_COMMANDS | 要禁用的 Valkey 命令 | nil |
VALKEY_DATABASE | 默认 Valkey 数据库 | valkey |
VALKEY_AOF_ENABLED | 启用 AOF 持久化 | yes |
VALKEY_RDB_POLICY | 启用 RDB 策略持久化 | nil |
VALKEY_RDB_POLICY_DISABLED | 允许启用 RDB 策略持久化 | no |
VALKEY_PRIMARY_HOST | Valkey 主节点主机(用于从节点) | nil |
VALKEY_PRIMARY_PORT_NUMBER | Valkey 主节点端口(用于从节点) | 6379 |
VALKEY_PORT_NUMBER | Valkey 端口号 | $VALKEY_DEFAULT_PORT_NUMBER |
VALKEY_ALLOW_REMOTE_CONNECTIONS | 允许远程连接到服务 | yes |
VALKEY_REPLICATION_MODE | Valkey 复制模式(值:primary, replica) | nil |
VALKEY_REPLICA_IP | 复制通告 IP | nil |
VALKEY_REPLICA_PORT | 复制通告端口 | nil |
VALKEY_EXTRA_FLAGS | 传递给 'valkey-server' 命令的额外标志 | nil |
ALLOW_EMPTY_PASSWORD | 允许无密码访问 | no |
VALKEY_PASSWORD | Valkey 密码 | nil |
VALKEY_PRIMARY_PASSWORD | Valkey 主节点密码 | nil |
VALKEY_ACLFILE | Valkey ACL 文件 | nil |
VALKEY_IO_THREADS_DO_READS | 启用读取 socket 时的多线程 | nil |
VALKEY_IO_THREADS | 线程数 | nil |
VALKEY_TLS_ENABLED | 启用 TLS | no |
VALKEY_TLS_PORT_NUMBER | Valkey TLS 端口(需 VALKEY_ENABLE_TLS=yes) | 6379 |
VALKEY_TLS_CERT_FILE | Valkey TLS 证书文件 | nil |
VALKEY_TLS_CA_DIR | 包含 TLS CA 证书的目录 | nil |
VALKEY_TLS_KEY_FILE | Valkey TLS 密钥文件 | nil |
VALKEY_TLS_KEY_FILE_PASS | Valkey TLS 密钥文件密码 | nil |
VALKEY_TLS_CA_FILE | Valkey TLS CA 文件 | nil |
VALKEY_TLS_DH_PARAMS_FILE | Valkey TLS DH 参数文件 | nil |
VALKEY_TLS_AUTH_CLIENTS | 启用 Valkey TLS 客户端认证 | yes |
VALKEY_SENTINEL_PRIMARY_NAME | Valkey Sentinel 主节点名称 | nil |
VALKEY_SENTINEL_HOST | Valkey Sentinel 主机 | nil |
VALKEY_SENTINEL_PORT_NUMBER | Valkey Sentinel 主机端口(用于从节点) | 26379 |
| 名称 | 描述 | 值 |
|---|---|---|
VALKEY_VOLUME_DIR | 持久化基础目录 | /bitnami/valkey |
VALKEY_BASE_DIR | Valkey 安装目录 | ${BITNAMI_ROOT_DIR}/valkey |
VALKEY_CONF_DIR | Valkey 配置目录 | ${VALKEY_BASE_DIR}/etc |
VALKEY_DEFAULT_CONF_DIR | Valkey 默认配置目录 | ${VALKEY_BASE_DIR}/etc.default |
VALKEY_MOUNTED_CONF_DIR | Valkey 挂载配置目录 | ${VALKEY_BASE_DIR}/mounted-etc |
VALKEY_CONF_FILE | Valkey 配置文件 | ${VALKEY_CONF_DIR}/valkey.conf |
VALKEY_LOG_DIR | Valkey 日志目录 | ${VALKEY_BASE_DIR}/logs |
VALKEY_LOG_FILE | Valkey 日志文件 | ${VALKEY_LOG_DIR}/valkey.log |
VALKEY_TMP_DIR | Valkey 临时目录 | ${VALKEY_BASE_DIR}/tmp |
VALKEY_PID_FILE | Valkey PID 文件 | ${VALKEY_TMP_DIR}/valkey.pid |
VALKEY_BIN_DIR | Valkey 可执行文件目录 | ${VALKEY_BASE_DIR}/bin |
VALKEY_DAEMON_USER | Valkey 系统用户 | valkey |
VALKEY_DAEMON_GROUP | Valkey 系统组 | valkey |
VALKEY_DEFAULT_PORT_NUMBER | Valkey 端口号(构建时) | 6379 |
出于安全原因,您可能需要禁用某些命令。首次运行时,可以使用以下环境变量指定要禁用的命令:
VALKEY_DISABLE_COMMANDS:要禁用的 Valkey 命令的逗号分隔列表。默认为空。consoledocker run --name valkey -e VALKEY_DISABLE_COMMANDS=FLUSHDB,FLUSHALL,CONFIG REGISTRY_NAME/bitnami/valkey:latest
或者,修改此仓库中的 docker-compose.yml 文件:
yamlservices: valkey: ... environment: - VALKEY_DISABLE_COMMANDS=FLUSHDB,FLUSHALL,CONFIG ...
如 docker-compose 中所指定,FLUSHDB 和 FLUSHALL 命令被禁用。如果不想禁用任何命令,请注释或删除该环境变量:
yamlservices: valkey: ... environment: # - VALKEY_DISABLE_COMMANDS=FLUSHDB,FLUSHALL ...
可以通过将额外命令行标志作为 run.sh 脚本的参数来传递给 valkey 服务命令:
consoledocker run --name valkey -e ALLOW_EMPTY_PASSWORD=yes REGISTRY_NAME/bitnami/valkey:latest /opt/bitnami/scripts/valkey/run.sh --maxmemory 100mb
或者,修改此仓库中的 docker-compose.yml 文件:
yamlservices: valkey: ... environment: - ALLOW_EMPTY_PASSWORD=yes command: /opt/bitnami/scripts/valkey/run.sh --maxmemory 100mb ...
首次运行镜像时传递 VALKEY_PASSWORD 环境变量,会将 Valkey 服务器密码设置为 VALKEY_PASSWORD 的值(或 VALKEY_PASSWORD_FILE 中指定的文件内容)。
consoledocker run --name valkey -e VALKEY_PASSWORD=password123 REGISTRY_NAME/bitnami/valkey:latest
或者,修改此仓库中的 [docker-compose.yml]([***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务