docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker run部署Redis

Docker使用run命令部署Redis的完整指南

作者:Kwan的解忧杂货铺

Redis作为当今最流行的内存数据库和缓存解决方案之一,与 Docker 容器技术的结合为开发者提供了极致的部署灵活性和环境一致性,下面我们来看看如何使用run命令部署Redis吧

一、Redis 容器化概述

1.1 容器化部署优势

Redis 容器化部署具有以下显著优势:

1.2 官方镜像特点

Redis 官方 Docker 镜像提供:

二、基础部署实战

2.1 获取官方镜像

拉取最新 Redis 镜像:

docker pull redis:7.0

验证镜像:

docker image inspect redis:7.0 | jq '.[0].Config.Cmd'

2.2 最小化启动命令

启动基础 Redis 容器:

docker run -d \
  --name redis-dev \
  -p 6379:6379 \
  redis:7.0

参数说明:

-d:后台运行模式

--name:指定容器名称

-p:端口映射(主机端口:容器端口)

2.3 连接验证

使用 redis-cli 连接测试:

docker exec -it redis-dev redis-cli
127.0.0.1:6379> PING
# 应返回 "PONG"

外部客户端连接:

redis-cli -h 127.0.0.1 -p 6379

三、持久化与数据管理

3.1 数据目录挂载

创建数据目录:

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

启动持久化实例:

docker run -d \
  --name redis-prod \
  -v ~/redis-data/data:/data \
  -v ~/redis-data/conf:/usr/local/etc/redis \
  redis:7.0 \
  redis-server /usr/local/etc/redis/redis.conf

3.2 配置文件定制

获取默认配置:

wget -O ~/redis-data/conf/redis.conf \
  https://raw.githubusercontent.com/redis/redis/7.0/redis.conf

关键配置修改:

# 启用持久化
save 900 1
save 300 10
save 60 10000

# 内存限制
maxmemory 2gb
maxmemory-policy allkeys-lru

# 安全设置
requirepass yourstrongpassword

3.3 备份与恢复

执行 RDB 备份:

docker exec redis-prod redis-cli SAVE
cp ~/redis-data/data/dump.rdb ~/redis-backup/

从备份恢复:

docker stop redis-prod
cp ~/redis-backup/dump.rdb ~/redis-data/data/
docker start redis-prod

四、安全加固配置

4.1 密码保护

通过环境变量设置密码:

docker run -d \
  --name redis-secure \
  -e REDIS_PASSWORD=yourstrongpassword \
  redis:7.0 \
  redis-server --requirepass ${REDIS_PASSWORD}

4.2 网络隔离

创建专用网络:

docker network create redis-net

docker run -d \
  --network redis-net \
  --name redis-internal \
  redis:7.0

4.3 非 root 运行

docker run -d \
  --user redis \
  --cap-drop ALL \
  --read-only \
  redis:7.0

五、高级配置技巧

5.1 内存管理

限制内存使用:

docker run -d \
  --name redis-mem \
  --memory="2g" \
  --memory-swap="3g" \
  -e MAXMEMORY=2gb \
  redis:7.0

5.2 主从复制

主节点:

docker run -d \
  --name redis-master \
  redis:7.0 \
  redis-server --appendonly yes

从节点:

docker run -d \
  --name redis-slave \
  --link redis-master:master \
  redis:7.0 \
  redis-server --slaveof master 6379 --appendonly yes

5.3 哨兵模式

哨兵配置示例:

docker run -d \
  --name redis-sentinel \
  -v ./sentinel.conf:/sentinel.conf \
  redis:7.0 \
  redis-sentinel /sentinel.conf

六、生产环境部署

6.1 资源限制

docker run -d \
  --name redis-production \
  --cpus="2" \
  --memory="4g" \
  --blkio-weight=500 \
  redis:7.0

6.2 健康监控

启用健康检查:

docker run -d \
  --health-cmd="redis-cli PING || exit 1" \
  --health-interval=30s \
  --health-timeout=3s \
  --health-retries=3 \
  redis:7.0

6.3 日志管理

JSON 格式日志:

docker run -d \
  --log-driver json-file \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  redis:7.0

七、性能优化建议

7.1 内核参数调优

echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
sysctl -p

7.2 持久化策略

AOF 配置优化:

appendonly yes
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

7.3 连接池设置

客户端连接优化:

timeout 300
tcp-keepalive 60
maxclients 10000

八、故障排查指南

8.1 常见问题诊断

查看运行日志:

docker logs redis-prod

内存分析:

docker exec redis-prod redis-cli INFO MEMORY

8.2 性能问题排查

慢查询分析:

docker exec redis-prod redis-cli SLOWLOG GET 10

监控关键指标:

docker exec redis-prod redis-cli INFO STATS

8.3 恢复流程

数据恢复步骤:

到此这篇关于Docker使用run命令部署Redis的完整指南的文章就介绍到这了,更多相关Docker run部署Redis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文