资讯详情

CentOS 10下Docker部署Redis全流程指南

📅 2026/10/24 9:17:53 | 华诺云谱 👁 阅读
CentOS 10下Docker部署Redis全流程指南
1. 环境准备与基础配置在VirtualBox中运行CentOS 10并部署Docker环境需要先完成基础的系统配置。我推荐使用CentOS 10 Minimal镜像进行安装这样可以减少不必要的资源占用。安装完成后首先需要确保系统更新到最新状态sudo yum update -y sudo yum install -y epel-release对于VirtualBox的增强功能支持建议安装以下包来改善虚拟机体验sudo yum install -y kernel-devel kernel-headers gcc make perl注意安装VirtualBox Guest Additions前需要确保内核版本与kernel-devel包完全匹配可以通过uname -r和rpm -q kernel-devel命令验证。网络配置方面建议使用桥接模式以获得更好的网络性能。如果遇到网络问题可以检查以下配置sudo nmcli connection modify eth0 ipv4.method auto sudo nmcli connection up eth02. Docker环境安装与优化在CentOS 10上安装Docker需要先添加官方仓库。以下是经过验证的安装步骤sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io安装完成后需要对Docker进行必要的配置优化。创建或修改/etc/docker/daemon.json文件{ exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2, storage-opts: [ overlay2.override_kernel_checktrue ] }启动Docker并设置开机自启sudo systemctl enable --now docker sudo usermod -aG docker $USER重要提示执行完用户组修改后需要完全退出当前会话重新登录才能使权限生效。3. Redis容器化部署实践3.1 单容器部署方案对于简单的开发测试环境可以直接运行Redis官方镜像docker run -d --name redis-server \ -p 6379:6379 \ -v /data/redis:/data \ --restart unless-stopped \ redis:latest \ --requirepass your_strong_password \ --appendonly yes这个命令实现了将容器6379端口映射到主机挂载数据卷实现持久化设置访问密码启用AOF持久化模式3.2 生产环境配置建议对于生产环境建议使用自定义配置文件。首先创建配置文件redis.confbind 0.0.0.0 protected-mode yes port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no supervised systemd pidfile /var/run/redis_6379.pid loglevel notice logfile databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /data requirepass your_strong_password然后使用以下命令启动容器docker run -d --name redis-production \ -p 6379:6379 \ -v /path/to/redis.conf:/usr/local/etc/redis/redis.conf \ -v /data/redis:/data \ --restart unless-stopped \ --memory 2g \ --cpus 2 \ redis:latest \ redis-server /usr/local/etc/redis/redis.conf4. Docker Compose编排方案4.1 基础Compose文件创建docker-compose.yml文件实现更复杂的部署version: 3.8 services: redis: image: redis:latest container_name: redis-server restart: unless-stopped ports: - 6379:6379 volumes: - ./data:/data - ./conf/redis.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf environment: - TZAsia/Shanghai networks: - redis-net deploy: resources: limits: cpus: 2 memory: 2G networks: redis-net: driver: bridge4.2 高可用集群配置对于需要高可用的场景可以使用Redis Sentinel模式。扩展后的Compose文件version: 3.8 services: redis-master: image: redis:latest command: redis-server --appendonly yes --requirepass your_strong_password ports: - 6379:6379 volumes: - ./master-data:/data redis-slave1: image: redis:latest command: redis-server --slaveof redis-master 6379 --masterauth your_strong_password --appendonly yes depends_on: - redis-master volumes: - ./slave1-data:/data redis-slave2: image: redis:latest command: redis-server --slaveof redis-master 6379 --masterauth your_strong_password --appendonly yes depends_on: - redis-master volumes: - ./slave2-data:/data sentinel1: image: redis:latest command: redis-sentinel /usr/local/etc/redis/sentinel.conf volumes: - ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf depends_on: - redis-master - redis-slave1 - redis-slave2 sentinel2: image: redis:latest command: redis-sentinel /usr/local/etc/redis/sentinel.conf volumes: - ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf depends_on: - redis-master - redis-slave1 - redis-slave2 sentinel3: image: redis:latest command: redis-sentinel /usr/local/etc/redis/sentinel.conf volumes: - ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf depends_on: - redis-master - redis-slave1 - redis-slave2对应的sentinel配置文件示例port 26379 sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel auth-pass mymaster your_strong_password5. 运维监控与问题排查5.1 常用监控命令进入Redis容器执行CLI操作docker exec -it redis-server redis-cli -a your_strong_password关键监控命令INFO- 查看服务器信息CLIENT LIST- 查看客户端连接SLOWLOG GET- 获取慢查询日志MEMORY STATS- 内存使用情况5.2 常见问题解决问题1Docker容器无法启动Redis检查日志docker logs redis-server常见原因配置文件错误、端口冲突、权限问题解决方案修正配置文件确保6379端口未被占用问题2客户端连接超时检查网络连通性验证防火墙设置sudo firewall-cmd --list-all检查Redis绑定地址和protected-mode配置问题3内存不足调整Docker内存限制配置Redis最大内存maxmemory 2gb设置内存淘汰策略maxmemory-policy allkeys-lru5.3 性能优化建议对于写密集型应用考虑以下配置appendfsync everysec no-appendfsync-on-rewrite yes auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb网络优化sysctl -w net.core.somaxconn65535 sysctl -w vm.overcommit_memory1监控方案建议使用Redis Exporter Prometheus Grafana配置报警规则监控内存使用、连接数等关键指标6. 安全加固措施必须设置强密码requirepass参数禁用危险命令rename-command FLUSHDB rename-command FLUSHALL rename-command CONFIG 限制网络访问使用Docker网络隔离配置防火墙规则考虑使用SSL/TLS加密定期备份策略# RDB备份 docker exec redis-server redis-cli -a your_password SAVE # AOF备份 cp /data/appendonly.aof /backup/版本更新策略定期检查安全公告测试新版本兼容性使用滚动更新策略docker-compose pull docker-compose up -d
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑