手把手教你用 Docker 部署 Redis

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。

Redis是一款开源的高性能内存数据存储系统,常用作数据库、缓存和消息代理。它支持字符串、哈希、列表等多种数据结构,凭借内存存储特性提供毫秒级响应速度,广泛应用于高并发场景下的数据快速访问。

使用Docker部署Redis具有显著优势:首先,容器化确保了环境一致性,避免因操作系统、依赖库差异导致的"在我这能跑"问题;其次,部署过程标准化,通过简单命令即可快速启动,大幅降低配置复杂度;再者,容器隔离性强,能有效避免Redis与其他应用的资源冲突;此外,便于版本管理和快速迁移,可轻松切换不同Redis版本或在不同环境间移植。

1、查看 Redis 镜像详情

你可以在 轩辕镜像 中 搜索 Redis ,查看  Redis 镜像页面。在镜像页面中,你会看到多种拉取方式,下面我们逐一说明如何部署。

2、下载 Redis 镜像

2.1 使用轩辕镜像登录验证的方式拉取

docker pull docker.xuanyuan.run/library/redis:latest

2.2 拉取后改名

docker pull docker.xuanyuan.run/library/redis:latest \
  && docker tag docker.xuanyuan.run/library/redis:latest library/redis:latest \
  && docker rmi docker.xuanyuan.run/library/redis:latest

说明:

  • docker pull:从轩辕镜像加速拉取镜像
  • docker tag:将镜像重命名为官方标准名称 library/redis:latest,后续运行命令更简洁
  • docker rmi:删除临时镜像标签,避免占用额外存储空间

2.3 使用免登录方式拉取(推荐)

基础拉取命令:

docker pull xxx.xuanyuan.run/library/redis:latest

带重命名的完整命令:

docker pull xxx.xuanyuan.run/library/redis:latest \
  && docker tag xxx.xuanyuan.run/library/redis:latest library/redis:latest \
  && docker rmi xxx.xuanyuan.run/library/redis:latest

说明:

免登录方式无需配置账户信息,新手可直接使用;镜像内容与 docker.xuanyuan.run 源完全一致,仅拉取地址不同。

2.4 官方直连方式

若网络可直连 Docker Hub,或已配置轩辕镜像加速器,可直接拉取官方镜像:

docker pull library/redis:latest

2.5 查看镜像是否拉取成功

docker images

若输出类似以下内容,说明镜像下载成功:

REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
library/redis  latest    7614ae9453d1   3 weeks ago    120MB

3、部署 Redis

以下使用已下载的 library/redis:latest 镜像,提供三种部署方案,可根据场景选择。

3.1 快速部署(最简方式)

适合测试或临时使用,命令如下:

# 启动 Redis 容器,命名为 redis-test
# 宿主机 6379 端口映射到容器 6379 端口(Redis 默认端口)
docker run -d --name redis-test -p 6379:6379 library/redis:latest

核心参数说明:

  • --name redis-test:为容器指定名称,便于后续管理(如停止、重启)
  • -p 6379:6379:端口映射,格式为「宿主机端口:容器端口」
  • -d:后台运行容器

验证方式:

在宿主机执行:

docker exec -it redis-test redis-cli ping

输出 PONG 即表示 Redis 运行正常。

3.2 持久化部署(推荐方式,适合实际项目)

通过挂载宿主机目录,实现「数据持久化」「配置独立管理」,步骤如下:

第一步:创建宿主机目录

mkdir -p /data/redis/{data,conf}

第二步:准备配置文件

新建 /data/redis/conf/redis.conf,写入简单配置:

bind 0.0.0.0
protected-mode no
port 6379
appendonly yes

说明:

  • bind 0.0.0.0:允许外部访问(生产环境可改为内网 IP)
  • appendonly yes:启用 AOF 持久化,避免数据丢失

第三步:启动容器并挂载目录

docker run -d --name redis-web \
  -p 6379:6379 \
  -v /data/redis/data:/data \
  -v /data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  library/redis:latest redis-server /usr/local/etc/redis/redis.conf

目录映射说明:

宿主机目录 容器内目录 用途
/data/redis/data /data Redis 数据持久化
/data/redis/conf/ /usr/local/etc/redis/redis.conf Redis 配置文件

3.3 docker-compose 部署(适合企业级场景)

通过 docker-compose.yml 统一管理容器配置,支持一键启动/停止。

第一步:创建 docker-compose.yml 文件

version: '3'
services:
  redis:
    image: library/redis:latest
    container_name: redis-service
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data
      - ./conf/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    restart: always

第二步:启动服务

docker-compose.yml 所在目录执行:

docker compose up -d

补充说明:

  • 修改配置文件后可直接 docker restart redis-service 生效
  • 停止服务命令:docker compose down
  • 查看状态:docker compose ps

4、结果验证

通过以下方式确认 Redis 服务正常运行:

4.1 客户端验证

redis-cli -h 服务器IP -p 6379
> ping
PONG

4.2 查看容器状态

docker ps

若 STATUS 列显示 Up,说明容器正常运行。

4.3 查看容器日志

docker logs redis-web

无报错信息即表示服务启动正常。

5、常见问题

5.1 无法远程连接?

排查方向:

  1. 防火墙:确认宿主机 6379 端口已开放
ufw allow 6379/tcp
firewall-cmd --add-port=6379/tcp --permanent && firewall-cmd --reload
  1. 配置问题:确认 redis.confbind 0.0.0.0protected-mode no

5.2 如何设置密码?

  1. redis.conf 文件中添加:
requirepass 你的密码
  1. 修改后重启容器:
docker restart redis-web
  1. 验证:
redis-cli -a 你的密码 ping

5.3 数据丢失怎么办?

  • AOF 持久化:启用 appendonly yes(推荐)
  • RDB 快照:默认开启,可在配置文件调整快照规则
  • 外部备份:定期将 /data/redis/data 目录打包存档

5.4 容器内时区不正确?

在启动容器时,增加环境变量:

-e TZ=Asia/Shanghai

完整示例:

docker run -d -e TZ=Asia/Shanghai \
  --name redis-web \
  -p 6379:6379 \
  -v /data/redis/data:/data \
  -v /data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  library/redis:latest redis-server /usr/local/etc/redis/redis.conf

结尾

至此,你已掌握基于轩辕镜像的 Redis 镜像拉取与 Docker 部署全流程——从镜像下载验证,到不同场景的部署实践,再到问题排查,每个步骤都配备了完整的操作命令和说明。

  • 初学者:建议先从「快速部署」熟悉流程
  • 进阶用户:使用「持久化部署」保障数据安全
  • 企业级场景:采用「docker-compose」实现配置管理与高可用

在实际使用中,若遇到文档未覆盖的问题,可结合 docker logs 容器名 查看日志定位原因,或参考 Redis 官方文档深入学习。随着实践深入,你还可以探索 Redis 的 主从复制、哨兵模式、集群部署 等高级功能,让 Redis 更好地支撑你的业务需求。

目录
相关文章
kde
|
24天前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
514 4
|
23天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
93 5
|
2月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
173 12
docker 部署 sftp
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
290 5
kde
|
1月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
kde
1407 8
kde
|
1月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
kde
338 4
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
运维 Kubernetes 前端开发
【云原生】阿里云服务器部署 Docker Swarm集群
阿里云服务器 一键部署 Docker Swarm 集群!
947 0
【云原生】阿里云服务器部署 Docker Swarm集群
|
弹性计算 数据可视化 关系型数据库
使用阿里云部署基于docker的mysql云服务
本篇文章将介绍如何使用阿里云安装docker、部署mysql服务,并远程连接至远端mysql
928 1
使用阿里云部署基于docker的mysql云服务