# 创建 Redis 配置和数据目录
mkdir -p ~/docker/redis/conf
mkdir -p ~/docker/redis/data
# 下载 Redis 官方配置文件
cd ~/docker/redis/conf
wget https://raw.githubusercontent.com/redis/redis/7.0/redis.conf
# 或者手动创建配置文件
创建 ~/docker/redis/conf/redis.conf 文件:
# 基本配置
bind 127.0.0.1
port 6379
daemonize no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
# 数据持久化
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
# 内存设置
maxmemory 512mb
maxmemory-policy allkeys-lru
# 安全设置
requirepass yourpassword # 设置密码(可选)
# 其他设置
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 运行 Redis 容器
docker run -d \
--name redis \
-p 6379:6379 \
-v ~/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v ~/docker/redis/data:/data \
--restart unless-stopped \
redis:alpine \
redis-server /usr/local/etc/redis/redis.conf
创建 ~/docker/redis/docker-compose.yml:
version: '3.8'
services:
redis:
image: redis:7.0-alpine
container_name: redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- ./conf/redis.conf:/usr/local/etc/redis/redis.conf
- ./data:/data
command: redis-server /usr/local/etc/redis/redis.conf
environment:
- TZ=Asia/Shanghai
networks:
- redis-network
networks:
redis-network:
driver: bridge
启动服务:
cd ~/docker/redis
docker-compose up -d
# 查看容器状态
docker ps | grep redis
# 测试连接(如果设置了密码)
docker exec -it redis redis-cli -a yourpassword ping
# 或者进入容器内部
docker exec -it redis redis-cli
# 查看日志
docker logs redis
# 启动/停止/重启
docker-compose up -d
docker-compose down
docker-compose restart redis
# 进入 Redis CLI
docker exec -it redis redis-cli
# 查看配置文件是否生效
docker exec redis cat /usr/local/etc/redis/redis.conf | grep requirepass
# 备份数据
docker cp redis:/data/dump.rdb ./backup/
如果遇到配置文件权限问题:
# 修改配置文件权限
chmod 644 ~/docker/redis/conf/redis.conf
# 或者在 docker-compose.yml 中添加用户映射
user: "1000:1000" # 使用当前用户的 UID:GID
# 使用 Windows 路径格式
volumes:
- C:/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
确保 Docker Desktop 的文件共享设置中包含挂载的目录。
data 目录确保容器删除后数据不丢失
密码设置:生产环境建议设置密码,开发环境可暂时关闭
这样配置后,你的 Redis 服务就具备了: