Docker 安装和配置 Redis 完整指南
Redis 作为高性能的键值数据库,在开发和生产环境中被广泛使用。结合 Docker,我们可以快速部署和管理 Redis 实例。本文将详细介绍如何使用 Docker 安装和配置 Redis。
目录
为什么使用 Docker 部署 Redis?
安装 Docker
拉取 Redis 镜像
运行 Redis 容器
Redis 配置
数据持久化
Redis 客户端连接
生产环境建议
常用命令
为什么使用 Docker 部署 Redis?
环境一致性:确保开发、测试、生产环境一致
快速部署:几分钟内即可启动 Redis 实例
资源隔离:独立的运行环境,避免冲突
易于维护:简单的备份、迁移和版本管理
安装 Docker
首先确保系统已安装 Docker:
bash
# Ubuntu/Debian sudo apt update sudo apt install docker.io# CentOS/RHEL sudo yum install docker# 启动 Docker 服务 sudo systemctl start docker sudo systemctl enable docker# 验证安装 docker --version
拉取 Redis 镜像
从 Docker Hub 获取官方 Redis 镜像:
bash
# 拉取最新版本 docker pull redis# 拉取特定版本(推荐) docker pull redis:7.0-alpine# 查看已下载的镜像 docker images
运行 Redis 容器
基础运行
bash
# 最简单的运行方式 docker run --name my-redis -d redis# 指定端口映射 docker run --name my-redis -p 6379:6379 -d redis# 指定密码 docker run --name my-redis -p 6379:6379 -d redis redis-server --requirepass "yourpassword"
常用参数说明
bash
docker run \--name my-redis \ # 容器名称-p 6379:6379 \ # 端口映射 主机端口:容器端口-d \ # 后台运行--restart unless-stopped \ # 自动重启策略redis:7.0-alpine \ # 镜像版本redis-server \ # 启动命令--requirepass "123456" # Redis 配置参数
Redis 配置
使用自定义配置文件
创建 Redis 配置文件 redis.conf:
conf
# redis.conf bind 0.0.0.0 port 6379 requirepass your_secure_password maxmemory 256mb maxmemory-policy allkeys-lru appendonly yes appendfilename "appendonly.aof"
运行容器时挂载配置文件:
bash
docker run \--name my-redis \-p 6379:6379 \-v $(pwd)/redis.conf:/usr/local/etc/redis/redis.conf \-v redis-data:/data \-d redis:7.0-alpine \redis-server /usr/local/etc/redis/redis.conf
使用环境变量配置
bash
docker run \--name my-redis \-p 6379:6379 \-e REDIS_PASSWORD=yourpassword \-e REDIS_PORT=6379 \-e REDIS_DATABASES=16 \-d redis:7.0-alpine
数据持久化
确保 Redis 数据不会因容器重启而丢失:
1. 使用数据卷
bash
# 创建数据卷 docker volume create redis-data# 运行容器并挂载数据卷 docker run \--name my-redis \-p 6379:6379 \-v redis-data:/data \-d redis:7.0-alpine \redis-server --appendonly yes
2. 使用宿主机目录
bash
# 创建本地目录 mkdir -p /docker/redis/datadocker run \--name my-redis \-p 6379:6379 \-v /docker/redis/data:/data \-v /docker/redis/redis.conf:/usr/local/etc/redis/redis.conf \-d redis:7.0-alpine \redis-server /usr/local/etc/redis/redis.conf
Redis 客户端连接
1. 使用 redis-cli 连接
bash
# 进入容器内部使用 redis-cli docker exec -it my-redis redis-cli# 如果设置了密码 docker exec -it my-redis redis-cli -a yourpassword# 从外部连接 redis-cli -h localhost -p 6379 -a yourpassword
2. 使用编程语言连接
Python 示例:
python
import redis# 连接 Redis
r = redis.Redis(host='localhost',port=6379,password='yourpassword',decode_responses=True
)# 测试连接
r.set('foo', 'bar')
print(r.get('foo')) # 输出: barNode.js 示例:
javascript
const redis = require('redis');const client = redis.createClient({socket: {host: 'localhost',port: 6379},password: 'yourpassword'
});client.on('error', (err) => console.log('Redis Client Error', err));await client.connect();
await client.set('key', 'value');
const value = await client.get('key');
console.log(value);生产环境建议
1. 使用 Docker Compose
创建 docker-compose.yml 文件:
yaml
version: '3.8'services:redis:image: redis:7.0-alpinecontainer_name: redis-serverports:- "6379:6379"volumes:- redis-data:/data- ./redis.conf:/usr/local/etc/redis/redis.confcommand: redis-server /usr/local/etc/redis/redis.confrestart: unless-stoppedenvironment:- REDIS_PASSWORD=your_secure_passwordvolumes:redis-data:
启动服务:
bash
docker-compose up -d
2. 安全配置
conf
# redis.conf 安全配置 requirepass strong_password_here rename-command FLUSHDB "" rename-command FLUSHALL "" rename-command CONFIG "" bind 0.0.0.0 protected-mode yes
3. 监控和日志
bash
# 查看 Redis 日志 docker logs my-redis# 实时查看日志 docker logs -f my-redis# 进入容器检查状态 docker exec -it my-redis redis-cli info
常用命令
bash
# 管理容器 docker start my-redis # 启动 docker stop my-redis # 停止 docker restart my-redis # 重启 docker rm my-redis # 删除# 查看状态 docker ps # 运行中的容器 docker ps -a # 所有容器 docker stats my-redis # 资源使用情况# 备份数据 docker exec my-redis redis-cli SAVE # 创建 RDB 快照# 进入容器 docker exec -it my-redis /bin/bash
总结
通过 Docker 部署 Redis 提供了极大的便利性和灵活性。本文涵盖了从基础安装到生产环境配置的完整流程。记住在生产环境中要特别注意安全配置和数据持久化,确保服务的稳定性和数据的安全性。
使用 Docker 部署 Redis 不仅简化了运维工作,还为微服务架构和云原生应用提供了坚实的基础设施支持。
