Docker 安装 redis

时间:2025-03-20 17:35:20

目录

  • 前言
  • 安装 redis
    • 安装步骤1:准备
      • 1.1:安装 docker。
      • 1.2:搜索可以使用的镜像。
      • 1.3:也可从docker hub上搜索镜像。
      • 1.4:选择合适的redis镜像。
    • 安装步骤2:拉取镜像
      • 2.1:拉取镜像
      • 2.2:查看已拉取的镜像
    • 安装步骤3:创建容器
      • 3.1:创建容器方式1:快速创建容器
      • 3.2:创建容器方式2:创建容器+配置文件
      • 3.3:创建容器方式3(推荐):创建容器+配置文件+数据目录
    • 安装步骤4:运行容器
    • 安装步骤5:确认reids是否运行
      • 5.1 docker ps 查看
      • 5.2 登录redis控制台
  • redis 的配置
    • 修改IP
    • 修改密码
  • 容器设置
    • 容器随 docker 自动启动
    • 容器设置IP
  • redis持久化
  • 其它
    • 登录到容器
    • 命令行登录 redis
    • 命令行登录到指定IP上的 redis
  • 错误处理
    • 错误1:`>>> 'repl-diskless-sync-max-replicas 0' Bad directive or wrong number of arguments`
  • 参考

前言

  • CentOS Linux release 7.6.1810 (Core)
  • TencentOS Server 2.4(与 CentOS 7用户态完全兼容)
  • TencentOS Server 3.1(与 CentOS 8用户态完全兼容)
  • Docker version 19.03.14, build 5eb3275d40
  • 【docker】常用操作命令

安装 redis

安装步骤1:准备

1.1:安装 docker。

安装 docker 参考:【Centos 8】【Centos 7】安装 docker

如果已经安装了 已安装,跳过这里。

1.2:搜索可以使用的镜像。

shell> docker search redis

1.3:也可从docker hub上搜索镜像。

docker hub redis镜像docker hub-stage

1.4:选择合适的redis镜像。

redis版本 拉取命令
最新版本 docker pull redis:latest
6.2.1 docker pull redis:6.2.1
6.2 docker pull redis:6.2
6.0 docker pull redis:6.0
5.0.12 docker pull redis:5.0.12
5.0 docker pull redis:5.0
4.0.13 docker pull redis:4.0.13
4.0 docker pull redis:4.0

安装步骤2:拉取镜像

2.1:拉取镜像

shell> docker pull redis:6.2.1
6.2.1: Pulling from library/redis
f7ec5a41d630: Pull complete
a36224ca8bbd: Pull complete
7630ad34dcb2: Pull complete
dd0ea236b03b: Pull complete
ed6ed4f2f5a6: Pull complete
8788804112c6: Pull complete
Digest: sha256:08e282682a708eb7f51b473516be222fff0251cdee5ef8f99f4441a795c335b6
Status: Downloaded newer image for redis:6.2.1
/library/redis:6.2.1

2.2:查看已拉取的镜像

shell> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               6.2.1               de974760ddb2        34 hours ago        105MB
rabbitmq            3-management        ee045987e252        5 weeks ago         187MB
hello-world         latest              d1165f221234        5 weeks ago         13.3kB
sonatype/nexus3     latest              8716903d1912        3 months ago        629MB

安装步骤3:创建容器

  • 容器名称:redis1
  • 有几种创建容器的方式
  • 根据自己的需求确定选择哪种方式创建容器

3.1:创建容器方式1:快速创建容器

shell> docker run -itd -p 6379:6379 --name redis1 redis:6.2.1

这种方式创建容器后,各项配置是默认的。暂不清楚如何修改。

3.2:创建容器方式2:创建容器+配置文件

  1. 创建redis1目录,并下载
shell> mkdir -p /data/redis1 && cd /data/redis1
shell> mkdir conf
shell> wget /releases/redis-6.2.
shell> tar -zxvf redis-6.2.
shell> cp redis-6.2.1/ conf/
  • redis-stable 的 : /redis-stable/
  • redis 6.2.1版本的文件的从这里下载
  • 从redis官网下载对应版本的
  • 或者其它途径获取有效的,将有效的放到/data/redis1/conf目录下
  1. 创建镜像
shell> docker create --name redis1 \
 -v /data/redis1/conf:/usr/local/etc/redis \
 redis:6.2.1 redis-server /usr/local/etc/redis/
  • -v /data/redis1/conf:/usr/local/etc/redis
  • redis-server /usr/local/etc/redis/
  • 如果需要将redis端口暴露出去,则添加参数-p 6379:6379

3.3:创建容器方式3(推荐):创建容器+配置文件+数据目录

  1. 创建redis1目录,并下载(参考上面)
  2. 创建镜像
shell> docker create --name redis1 \
 -v /data/redis1/conf:/usr/local/etc/redis \
 -v /data/redis1/data:/data \
 -m 512M \
 redis:6.2.1 redis-server /usr/local/etc/redis/
  • -v /data/redis1/conf:/usr/local/etc/redis
  • -v /data/redis1/data:/data
  • redis-server /usr/local/etc/redis/
  • 如果需要将redis端口暴露出去,则添加参数-p 6379:6379

安装步骤4:运行容器

shell> docker start redis1

查看运行着的容器

[root@xxx ~]# docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                                                                  NAMES
f113ee9d115a        redis:6.2.1             "…"   2 minutes ago       Up 2 minutes                                                                                               redis1

安装步骤5:确认reids是否运行

5.1 docker ps 查看

shell> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9887b09c8c68        redis:6.2.1         "docker-entrypoint..."   15 months ago       Up 6 weeks          6379/tcp            redis1

5.2 登录redis控制台

shell> docker exec -it redis1 redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit

redis 的配置

修改 redis 的配置文件

修改IP

在redis 的配置文件中,修改bind配置项。

  • bind 127.0.0.1 172.19.0.2 -::1 (172.19.0.2为该docker容器的ip)
  • bind * -::*(这个通用)

修改密码

  • requirepass xxxx (xxxx为密码)

容器设置

容器随 docker 自动启动

设置容器的重启策略

shell> docker update --restart=always redis1
  • 每次docker启动时,容器也会自动启动

容器设置IP

向网络中添加容器

shell> docker network connect --ip 172.19.0.2  mynetwork redis1 
  • docket ip : 172.19.0.2

redis持久化

在redis 的配置文件中,修改save选项

save 20 3 表示在20秒内如果至少有3个key发生变化,则保存

其它

登录到容器

shell> docker exec -it redis1 /bin/bash
root@a1bf20d19520:/data# 

命令行登录 redis

[root@xxx ~]# docker exec -it redis1 redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth xxxx
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit

命令行登录到指定IP上的 redis

[root@xxx ~]# docker exec -it redis1 redis-cli -h 172.19.0.2 -p 6379
172.19.0.2:6379> ping
(error) NOAUTH Authentication required.
172.19.0.2:6379> auth xxxx
OK
172.19.0.2:6379> ping
PONG
172.19.0.2:6379> exit

错误处理

错误1:>>> 'repl-diskless-sync-max-replicas 0' Bad directive or wrong number of arguments

shell> docker logs redis1
*** FATAL CONFIG FILE ERROR (Redis 6.2.1) ***
Reading the configuration file, at line 624
>>> 'repl-diskless-sync-max-replicas 0'
Bad directive or wrong number of arguments

文件要与redis的版本一致,如果下载不对应的配置文件时,部分属性会报错。

参考

【CentOS7】【docker】常用操作命令
【Centos 8】【Centos 7】安装 docker
docker inspect 查看部分数据
redis持久化
redis的持久化存储