Docker安装Redis方法

该文详细介绍了如何在Linux环境中使用Docker安装Redis,包括启动Docker服务,下载Redis镜像,创建并配置Redis容器,设置访问密码,以及实现数据的AOF持久化。此外,还提到了如何通过端口映射在主机上访问Redis服务和创建多个Redis实例。

安装

在Linux服务器上通过Docker安装Redis的步骤如下:

安装Docker:在终端中输入以下命令:

sudo apt-get update
sudo apt-get install docker.io

启动Docker:输入以下命令启动Docker:

sudo systemctl start docker

下载Redis镜像:输入以下命令下载Redis镜像:

docker pull redis

创建Redis容器:输入以下命令创建Redis容器:

docker run -d --name my-redis -p 6379:6379 redis:latest redis-server --requirepass 123456

其中:

  • -d 表示可以在后台运行
  • --name my-redis表示容器名
  • -p 6379:6379表示进行端口映射,意思是将容器内的 6379 端口映射到主机的 6379 端口。这样,在主机上就可以使用 6379 端口来访问容器内的 redis 服务。
  • redis-server表示启动my-redis容器之后,执行的命令
  • --requirepass 123456表示设置的Redis服务密码,在进入redis容器前,使用下面的命令连接redis服务:redis-cli -h <docker-host-ip> -p 6379 -a 123456<docker-host-ip> 指的是 Docker 主机的 IP 地址。例如:如果你的 Docker 主机的 IP 地址是 192.168.0.100,那么你在远程访问 redis 容器时使用的地址就是 192.168.0.100:6379

进入Redis容器:输入以下命令进入my-redis容器:

docker exec -it my-redis bash

my-redis容器中使用Redis命令:输入以下命令启动Redis CLI:

redis-cli

或者可以直接通过交互模式(-it),执行my-redis容器中的命令redis-cli

docker exec -it my-redis redis-cli

或者在宿主机内直接访问redis服务

redis-cli -h <docker-host-ip> -p 6379 -a 123456

也可以

redis-cli -h <docker-host-ip> -p 6379

进入之后,再输入auth 123456。通常<docker-host-ip>写为localhost即可

redis-cli -h localhost -p 6379 -a 123456

持久化

持久化是指将redis的数据存储到硬盘上,以防数据丢失,保证数据的完整性和可靠性。因为redis是内存数据库,所以如果不进行持久化,一旦redis服务停止或异常退出,将会丢失所有的数据。
1)创建一个目录,用于存储 Redis 的数据:

mkdir ~/redis-data

2)创建容器。因为 “my-redis” 容器已经存在,要修改容器需要先停止并删除它,然后再使用新的命令创建容器。具体操作如下:

  1. 停止容器:docker stop my-redis
  2. 删除容器:docker rm my-redis
  3. 使用新命令创建容器:
 docker run --name my-redis -p 6379:6379 -v ~/redis-data:/data -d redis:latest redis-server --appendonly yes --requirepass 123456

上面的命令,添加了 --appendonly yes 参数,它开启了 Redis 的 AOF 持久化功能。将宿主机的~/redis-data目录映射到容器的/data目录。

访问

注意,要将服务器的防火墙放开6379端口
在这里插入图片描述
这样就可以根据服务器的IP地址,来借助GUI工具访问了
在这里插入图片描述

创建多个实例

额外创建多个Redis容器,只需要添加多个端口映射即可。

docker run -d --name my-redis2 -p 6380:6379 redis:latest redis-server --requirepass 123456
docker run -d --name my-redis3 -p 6381:6379 redis:latest redis-server --requirepass 123456

在这里插入图片描述

<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
发出的红包

打赏作者

江鸟阁长

你的支持是我更新的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值