三、Docker安装Redis

本文详细介绍了如何使用Docker安装和使用Redis。首先通过搜索和拉取Redis镜像,然后利用Docker命令启动Redis服务并设置持久化配置,最后演示了如何通过Redis命令行工具进行基本操作。

一、安装Redis

1. 查询Redis镜像
docker search redis

在这里插入图片描述

2. 使用docker pull命令来安装
docker pull redis

在这里插入图片描述

二、使用Redis

1. 启动Redis
docker run -p 6379:6379 -v $PWD/data:/data  -d redis redis-server --appendonly yes

在这里插入图片描述

各参数含义
  • -p 6379:6379:端口映射,从6379->6379
  • -v $PWD/data:/data:将主机中当前目录下的data挂载到容器的/data
  • -d redis:在后台运行Redis
  • redis-server --appendonly yes:在容器执行redis-server启动命令,并打开redis持久化配置
2. 连接Redis

使用redis镜像执行redis-cli命令连接到刚启动的容器

docker exec -it ed59c5dddde0 redis-cli

在这里插入图片描述

redis-cli命令

表示Redis命令行工具

3. 使用
set a 123
get a

在这里插入图片描述

<think>我们根据用户的需求,需要提供使用Docker安装Redis 7.x版本的方法。用户在上一次的问题中已经提到想要安装7.x版本,并且之前的引用中提到了Redis 7.x的安装方法(引用[3]和引用[4])。我们将结合这些引用,并参考最佳实践,给出详细的安装步骤。 ### 核心步骤 1. **拉取Redis 7.x镜像** 使用`docker pull`命令拉取指定版本的Redis镜像: ```bash docker pull redis:7.0 # 拉取7.0版本的最新补丁,也可以指定具体版本如7.0.12 ``` 2. **准备配置文件** Redis 7.x的配置与之前版本略有不同,建议从官网下载对应版本的配置文件模板。 - 创建宿主机目录用于存放配置文件和持久化数据: ```bash mkdir -p /opt/docker/redis/{conf,data,log} chmod -R 777 /opt/docker/redis/ # 确保权限,避免容器启动失败 ``` - 下载Redis 7.x配置文件(以7.0.12为例): ```bash wget -O /opt/docker/redis/conf/redis.conf https://raw.githubusercontent.com/redis/redis/7.0/redis.conf ``` - 修改关键配置(按需): ```conf bind 0.0.0.0 # 允许所有IP连接 requirepass 123456 # 设置访问密码(可选) daemonize no # 必须设为no(Docker容器需要前台运行) appendonly yes # 启用AOF持久化 logfile "/data/redis.log" # 日志文件路径(容器内路径) ``` 3. **启动Redis容器** 使用`docker run`命令启动容器,挂载配置文件和持久化目录: ```bash docker run -d --name myredis7 \ -p 6379:6379 \ -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /opt/docker/redis/data:/data \ -v /opt/docker/redis/log:/logs \ redis:7.0 \ redis-server /etc/redis/redis.conf --appendonly yes ``` **参数说明**: - `-v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf`:挂载配置文件 - `-v /opt/docker/redis/data:/data`:挂载数据目录(AOF/RDB文件存储位置) - `redis-server /etc/redis/redis.conf --appendonly yes`:启动Redis服务并加载配置(`--appendonly yes`可覆盖配置文件设置) 4. **验证安装** - 检查容器状态: ```bash docker ps -f name=myredis7 ``` - 连接Redis测试: ```bash docker exec -it myredis7 redis-cli 127.0.0.1:6379> AUTH 123456 # 如果设置了密码 OK 127.0.0.1:6379> CONFIG GET appendonly ``` ### 进阶配置(可选) - **设置重启策略**:添加`--restart=always`参数使容器自动重启[^4] - **时区同步**:挂载`-v /etc/localtime:/etc/localtime`使容器使用宿主机时区[^4] - **内存限制**:通过`--memory 1g`限制容器最大内存 ### 使用Docker Compose部署(推荐) 创建`docker-compose.yml`文件: ```yaml version: '3' services: redis: image: redis:7.0 container_name: myredis7 ports: - "6379:6379" volumes: - /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf - /opt/docker/redis/data:/data - /opt/docker/redis/log:/logs command: redis-server /etc/redis/redis.conf --appendonly yes restart: always ``` 启动服务: ```bash docker-compose up -d ``` ### 常见问题解决 1. **容器启动失败** - 检查配置文件路径是否正确 - 检查`daemonize`是否设为`no` - 检查目录权限(`chmod 777 /opt/docker/redis`) 2. **无法远程连接** - 确认配置中`bind 0.0.0.0` - 检查防火墙/安全组是否开放6379端口 ### 完整示例(一键部署) ```bash # 创建目录并下载配置文件 mkdir -p /opt/docker/redis/{conf,data,log} wget -O /opt/docker/redis/conf/redis.conf https://raw.githubusercontent.com/redis/redis/7.0/redis.conf # 修改配置文件(简化版) sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /opt/docker/redis/conf/redis.conf sed -i 's/# requirepass foobared/requirepass 123456/' /opt/docker/redis/conf/redis.conf sed -i 's/daemonize yes/daemonize no/' /opt/docker/redis/conf/redis.conf echo 'logfile "/logs/redis.log"' >> /opt/docker/redis/conf/redis.conf # 启动容器 docker run -d --name redis7 \ -p 6379:6379 \ -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /opt/docker/redis/data:/data \ -v /opt/docker/redis/log:/logs \ redis:7.0 \ redis-server /etc/redis/redis.conf ``` ### 引用说明 本文参考了以下配置方法: - 配置文件目录结构参考引用[3] - 容器启动参数参考引用[4] - 权限设置参考引用[5] §§相关问题:§§ 1. 如何在Docker中配置Redis集群模式? 2. Redis 7.x有哪些重要的新特性? 3. 如何备份和恢复Docker中运行的Redis数据? 4. 如何监控Docker容器的Redis性能指标? </think>### 使用 Docker 安装 Redis 7.x 的完整指南 #### 1️⃣ 安装准备 ```bash # 创建配置文件目录(宿主机) mkdir -p ~/docker/redis/{conf,data,log} # 下载 Redis 7.x 官方配置文件 wget -O ~/docker/redis/conf/redis.conf https://raw.githubusercontent.com/redis/redis/7.0/redis.conf ``` > 📌 关键配置修改(编辑 `~/docker/redis/conf/redis.conf`): > ```conf > bind 0.0.0.0 # 允许远程访问 > requirepass yourpassword # 设置访问密码 [^4] > appendonly yes # 启用AOF持久化 > daemonize no # 必须设为no(容器关键设置)[^3] > logfile "/data/redis.log" # 日志文件路径 > ``` #### 2️⃣ 单行启动命令(推荐) ```bash docker run -d --name redis7 \ -p 6379:6379 \ -v ~/docker/redis/conf/redis.conf:/etc/redis/redis.conf \ -v ~/docker/redis/data:/data \ -v ~/docker/redis/log:/logs \ -v /etc/localtime:/etc/localtime:ro \ --restart=always \ --privileged=true \ redis:7.0.12 \ redis-server /etc/redis/redis.conf ``` > ✅ **参数说明**: > - `-v ~/docker/redis/conf/redis.conf:/etc/redis/redis.conf`:挂载自定义配置 > - `-v ~/docker/redis/data:/data`:持久化数据目录 > - `--restart=always`:容器退出时自动重启 [^4] > - `-v /etc/localtime`:同步宿主机时区 #### 3️⃣ 多行启动命令(易读版) ```bash docker run -d --name redis7 \ -p 6379:6379 \ --restart=always \ --privileged=true \ -v ~/docker/redis/conf/redis.conf:/etc/redis/redis.conf \ -v ~/docker/redis/data:/data \ -v ~/docker/redis/log:/logs \ -v /etc/localtime:/etc/localtime:ro \ redis:7.0.12 \ redis-server /etc/redis/redis.conf \ --requirepass "yourpassword" \ --appendonly yes ``` #### 4️⃣ 使用 Docker Compose(生产推荐) 创建 `docker-compose.yml`: ```yaml version: '3.8' services: redis: image: redis:7.0.12 container_name: redis7 ports: - "6379:6379" volumes: - ./redis/conf/redis.conf:/etc/redis/redis.conf - ./redis/data:/data - ./redis/log:/logs - /etc/localtime:/etc/localtime:ro command: redis-server /etc/redis/redis.conf --requirepass "yourpassword" restart: always privileged: true ``` 启动服务: ```bash docker-compose up -d ``` #### 5️⃣ 验证安装 ```bash # 检查容器状态 docker ps -f name=redis7 # 连接Redis测试 docker exec -it redis7 redis-cli 127.0.0.1:6379> AUTH yourpassword OK 127.0.0.1:6379> CONFIG GET requirepass 1) "requirepass" 2) "yourpassword" ``` #### 💡 关键注意事项 1. **权限问题**:确保宿主机目录权限 `chmod -R 777 ~/docker/redis` [^3] 2. **配置热更新**:修改配置文件后需重启容器 `docker restart redis7` 3. **版本选择**:指定`redis:7.0.12`避免自动升级到8.x 4. **内存限制**:添加`--memory 1g`限制容器最大内存 5. **日志查看**:`docker logs -f redis7` 实时查看日志 #### 🌰 完整示例(一步到位) ```bash mkdir -p ~/docker/redis/{conf,data,log} && \ wget -O ~/docker/redis/conf/redis.conf https://bit.ly/3R4VtKY && \ sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/' ~/docker/redis/conf/redis.conf && \ sed -i 's/^# requirepass/requirepass mySecurePass/' ~/docker/redis/conf/redis.conf && \ docker run -d --name redis7 -p 6379:6379 -v ~/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v ~/docker/redis/data:/data redis:7.0.12 ``` > 参考配置实践:[Redis 7.x 容器化部署方案][^3][^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值