Skip to content

快速参考

  • 由……维护: (注:原文中“Maintained by:”后面应该会有具体的维护者信息,若有完整内容,翻译会更加准确。这里仅根据给定的部分进行了翻译。)
    Redis 有限公司

  • 哪里可以获得帮助:
    Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow

支持的标签及各自的 Dockerfile 链接

快速参考(续)

什么是 Redis?

Redis 是全球最快的数据平台。它为缓存、向量搜索和 NoSQL 数据库提供云和本地解决方案,可无缝融入任何技术栈——使数字客户能够轻松构建、扩展和部署我们的世界所依赖的快速应用程序。

redis.io

logo

安全

为了通过 Docker 网络从其他容器轻松访问 Redis,默认情况下“保护模式”是关闭的。这意味着如果您将端口暴露在主机之外(例如,通过 -pdocker run 上),它将对任何人开放且无需密码。如果您计划将 Redis 实例暴露到互联网上,强烈建议设置密码(通过提供配置文件)。有关更多信息,请参阅以下有关 Redis 安全性的链接:

如何使用此图像

启动一个 Redis 实例

$ docker run --name some-redis -d redis

从持久存储开始

$ docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning

有几种不同的持久化策略可供选择。如果至少执行了 1 次写操作,此策略将每 60 秒保存一次数据库的快照(这也会导致更多日志,因此可能需要 loglevel 选项)。如果启用了持久化,数据将存储在 VOLUME /data 中,可与 --volumes-from some-volume-container-v /docker/host/dir:/data 一起使用(请参阅 docs.docker 卷)。

有关 Redis 持久性的更多信息,请参阅 Redis 官方文档。

通过 redis-cli 连接

$ docker run -it --network some-network --rm redis redis-cli -h some-redis

此外,如果您想使用自己的 redis.conf...

您可以创建自己的 Dockerfile,将上下文的 redis.conf 添加到 /data/ 中,如下所示。

FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

或者,您可以使用 docker run 选项指定类似的内容。

$ docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf

其中 /myredis/conf/ 是包含您的 redis.conf 文件的本地目录。使用此方法意味着您的 Redis 容器无需 Dockerfile。

映射的目录应该是可写的,因为根据配置和操作模式,Redis 可能需要创建额外的配置文件或重写现有的配置文件。

图像变体

redis 图像有多种类型,每种都针对特定的用例而设计。

redis:<version>

这是事实上的映像。如果您不确定自己的需求是什么,您可能想要使用这个。它被设计为既可以用作一次性容器(挂载您的源代码并启动容器以启动您的应用程序),也可以作为构建其他映像的基础。

其中一些标签的名称中可能包含“bookworm”之类的字样。这些是 Debian 发行版的套件代号,表明该映像所基于的发行版。如果您的映像需要安装除映像自带的软件包之外的任何其他软件包,您可能需要明确指定其中之一,以在 Debian 有新版本发布时最大程度地减少损坏。

redis:<version>-alpine

此图像基于流行的 Alpine Linux 项目,可在 alpine 官方镜像中获取。Alpine Linux 比大多数发行版基础镜像(约 5MB)小得多,因此总体上会生成更精简的镜像。

当您首要关注的是最终图像大小尽可能小的时候,此变体是有用的。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 及相关库,因此软件往往会根据其对 libc 要求/假设的深度而遇到问题。有关可能出现的问题以及使用基于 Alpine 的图像的一些利弊比较的更多讨论,请参阅此 Hacker News 评论线程。

为尽量减小镜像大小,在基于 Alpine 的镜像中通常不会包含其他相关工具(例如 gitbash )。以该镜像为基础,在您自己的 Dockerfile 中添加您需要的内容(如果您不熟悉如何安装软件包,请参阅 alpine 镜像说明中的示例)。

许可证

自 2024 年 3 月 20 日起,Redis 采用双重许可模式,可选择 Redis 源代码可用许可证 v2 - RSALv2 或服务器端公共许可证 v1 - SSPLv1。Redis 的旧版本(<=7.2.4)依据 3 条款 BSD 许可证进行授权。

请同时查看 Redis 许可概述和 Redis 商标政策。

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

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

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