docker安装redis

本文详细介绍了如何使用Docker搜索、拉取Redis镜像,配置并启动不同版本的Redis,包括挂载配置和数据文件,以及解决常见问题。通过实例演示了如何创建和管理Redis容器,确保远程访问权限和数据持久化。
摘要由CSDN通过智能技术生成

参考:
https://hub.docker.com/_/redis/
https://redis.io/download

一、使用 docker search redis 查看镜像来源
[root@localhost docker]# docker search redis
NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
redis                            Redis is an open source key-value store that…   7486                [OK]                
bitnami/redis                    Bitnami Redis Docker Image                      130                                     [OK]
sameersbn/redis                                                                  78                                      [OK]
grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0 & 5.0               62                                      
rediscommander/redis-commander   Alpine image for redis-commander - Redis man…   31                                      [OK]
二、拉取镜像至本地

如拉取最新版本至本地

docker pull redis

也可以指定版本号,不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源

docker pull redis:6.2.5
三、查看本地镜像
[root@localhost docker]# docker images | grep redis
redis                              latest              de25a81a5a0b        2 weeks ago         98.2MB
hub.c.163.com/library/redis        latest              d4f259423416        2 years ago         106MB
四、安装
1、简单安装

在docker中执行

$ docker run --name myredis -d redis

快速启动

docker run -itd --name redis-test -p 6379:6379 redis

参数说明:
-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

2、配置安装(可选)

新建宿主机文件存储目录:

  1. 创建redis的数据存储和配置文件目录
mkdir -p /deploy/redis/{conf,data}
  1. 复制redis.conf文件至conf文件夹下,redis.conf 可通过 官网下载直接下载或者通过https://redis.io/download下载redis程序然后从中拷贝出来
[root@localhost conf]# ll
total 92
-rw-r--r--. 1 root root 93724 Sep 29 10:57 redis.conf

根据需要可调整配置文件中的配置内容
如我需要将redis的key过期推送功能打开
放开注释

notify-keyspace-events Ex 

修改启动默认配置(从上至下依次)

bind 127.0.0.1   #注释掉这部分,这是限制redis只能本地访问  **如果要允许远程访问的话 一定要设置** 

protected-mode no   #默认yes,开启保护模式,限制为本地访问  **如果要允许远程访问的话 一定要设置** 

daemonize no  #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败   如果是在docker中启动  要么不设置  或 设置成 no 

databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。

dir  ./ #输入本地redis数据库存放文件夹(可选)

appendonly yes #redis持久化(可选)

上面这个过程中有一个坑,即“daemonize no”这个配置,如果在conf文件中存在的话,在启动容器的时候这个参数值为yes的话,是无法启动镜像的。

bind 127.0.0.1 #注释掉这部分,如果要允许远程访问的话 一定要注释掉

protected-mode no #默认yes,开启保护模式,限制为本地访问 如果要允许远程访问的话 一定要设置为no

3. 创建启动容器,加载配置文件并持久化数据
docker container run  --restart=always \
-p 6379:6379 \
-v /deploy/redis/data:/data \
-v /deploy/redis/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true \
--name myredis \
-d redis redis-server /etc/redis/redis.conf --appendonly yes
docker run --restart=always -p 6379:6379 --name myredis -v /deploy/redis/conf/redis.conf:/etc/redis/redis.conf -v /deploy/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

参数解释说明:

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–name myredis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
例: -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf 容器 /etc/redis/redis.conf 配置文件 映射宿主机 /usr/local/docker/redis/redis.conf。 会将宿主机的配置文件复制到docker中
重要: 配置文件映射,docker镜像redis 默认无配置文件。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/redis.conf
重要: docker 镜像reids 默认 无配置文件启动
–appendonly yes 开启redis 持久化

说明:大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。

redis-cli 访问

docker run -it --link myredis:redis --rm redis redis-cli -h redis -p 6379

-it 交互的虚拟终端

docker container exec -it myredis  /bin/bash
redis-cli
五、查看是否运行成功
[root@localhost docker]# docker ps -a | grep redis
602659d1b445        redis                              "docker-entrypoint.s…"   54 minutes ago      Up 54 minutes                  0.0.0.0:6379->6379/tcp   modest_ramanujan
65bb6e6cab9f        redis                              "docker-entrypoint.s…"   About an hour ago   Exited (0) About an hour ago                            myredis
六、docker基本命令

查看所有镜像 docker images

删除镜像(会提示先停止使用中的容器) docker rmi 镜像name/镜像id

查看所有容器 docker ps -a

查看容器运行日志 docker logs 容器名称/容器id

停止容器运行 docker stop 容器name/容器id

终止容器后运行 docker start 容器name/容器id

容器重启 docker restart 容器name/容器id

删除容器 docker rm 容器name/容器id

注意事项
远程连接redis服务之前,别忘开起防火墙端口6379才能远程连接得到redis服务。
如果侬要设置密码,可以修改配置文件/etc/redis.conf 中requirepass 配置,如下我设置我的登录密码为123456:

常见错误
当桌面程序客户端连接redisf服务时,可能会报错,错误:

1、Connection error: Connection refused,解决办法:
修改配置文件/etc/redis.conf,并注释掉bind 127.0.0.1这一行。在这里插入图片描述
2、Connection: Connection error: The remote host closed the connection,解决办法:
修改配置文件/etc/redis.conf,将protected-mode为no。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值