docker安装redis

前言:

  • 博主不光是在Windows下跑,在linux上也使用了相同流程跑了一遍,结果是一样的,可放心食用。
  • "进阶版"时,博主遇到了麻烦,当时研究了将近两小时,所以,我们还是要坚持,加油!

在安装Redis之前,我们可以先查看一下我们的镜像,输入命令:

docker images

能发现,镜像里面有nginx和mysql,并没有redis

然后我们可以像上一篇安装mysql一样,安装redis镜像。

输入以下命令,安装redis镜像:

docker pull redis:7.0.8

最后看见:"Status: Downloaded newer image for redis:7.0.8",就代表下载成功。

再查看一下镜像,输入命令:

docker images

能看到,因为我们是指向下载"redis:7.0.8"版本,所以TAG标签给出的也是7.0.8

如果有的同学,使用的是 "latest"下载,那么TAG标签,也会给出 "latest"。

那么这时候,需要查看安装的镜像具体版本是多少,可以看一下这篇文章:
docker镜像latest具体是哪个版本_龙枫995的博客-CSDN博客_latest版本其实docker也有提供镜像具体版本的获取方式。docker 中 image 镜像管理image 中有一个inspect显示一个或多个图像的详细信息那么组合一下,就是这样:icon-default.png?t=N7T8https://blog.csdn.net/longfeng995/article/details/128828905

以上,redis镜像就安装好了。

好的,镜像安装好后,同学们能发现,直接去启动redis 是不行的。

因为这只是镜像,我们还需要创建它的容器,并且启动容器才可以。

我们可以先查看一下容器,输入命令:

docker ps -a

可以看到,容器里什么都没有。

那么需要创建一个redis容器

输入下面的命令:

docker run --name redis-test -p 6379:6379 -d 镜像ID

命令中,各项参数解释:

run    在新容器中运行命令

--name    为容器分配一个名称。上面我们分配的名称就叫"redis-test"

-p    将容器的端口发布到。上面的"6379:6379",就是将我们的6639端口,映射到容器里的6379端口,第一个6379就是我们环境中的,第二个6379是docker容器中的

-d    在后台运行container并打印容器ID

执行到这里,容器也就成功安装好了。我们来看一下容器的状况。

输入命令查看:

docker ps -a

这样redis容器就创建成功,并且是在运行状态。

然后我们打开"RedisDesktopManager"连接一下试试:

上面这样也就可以了。

但是,好像,有点,不对?

人家nginx、mysql,都有配置文件的啊,同样也是数据库,mysql有数据存储,redis的呢?

那么咱们就继续往下走

进阶版:

输入下面的命令:

docker run --name redis-test -p 6379:6379 -v D:/docker/redis/redis.conf:/etc/redis/redis.conf -v D:/docker/redis/data:/data -d 镜像ID redis-server ../etc/redis/redis.conf --appendonly yes

命令中,各项参数解释:

run    在新容器中运行命令

--name    为容器分配一个名称。上面我们分配的名称就叫"redis-test"

-p    将容器的端口发布到。上面的"6379:6379",就是将我们的6379端口,映射到容器里的6379端口,第一个6379就是我们环境中的,第二个6379是docker容器中的

-v    绑定挂载卷。就拿其中第一个"D:/docker/redis/redis.conf:/etc/redis/redis.conf"说明,前者很容易看出,我的环境是Windows环境,所以是D盘,然后一直到 redis.conf 配置文件,中间有一个英文冒号":"就是映射到docker容器中的"redis.conf"配置文件,将两者进行绑定,这样我们在"D:/docker/redis/redis.conf"中修改配置,docker容器中的配置文件,也会相对应跟着修改。

-d    在后台运行container并打印容器ID

--appendonly 是redis默认持久化

redis-server 是启动服务程序,后面跟着的"../etc/redis/redis.conf"就是执行这个配置文件

最后看到这样的,就是成功了。

如果报错了,容器创建成功却并未成功运行,或者启动容器马上自动停止了,可以检查一下日志,报的错误内容是什么。

有一种,如果是直接运行上面命令,那估计是不行的,需要加一个文件,请同学先往下面看,再返回执行上面的 "docker run" 命令。

然后我们再次去打开"RedisDesktopManager"连接一下试试:

是成功的,但是同学们也发现了,图中我这里标记了,多了密码的。

为什么呢?返回上面我们创建容器的时候,挂载文件中,有"redis.conf"

我们来看看 redis.conf 文件的内容:

#bind 127.0.0.1

port 6379

requirepass 123456

protected-mode yes

databases 16

其中"requirepass" 就是设置的密码,我这里设置的是 123456

注意一点,第一行 bind 是注释掉了的。

为什么呢?

因为如果打开,并且后面跟的值是"127.0.0.1" 则代表只有本机可访问。

然后这个本机,又是docker容器本身,我们是在Windows环境下的,所以如果设置了 bind,那么就无法使用"RedisDesktopManager"工具访问了。

上面我们说过,mysql有数据,redis也是有数据的,根据我们的挂载目录,能看到我们Windows下的目录发生了变化:

这里就是redis的数据了

补充关键,这是一个大坑,建议未成年在大人陪同下观看:

我在windows环境下,就在 docker run 这一步,真的头疼我了,因为我们使用上面最简单的方式,是没问题的,但是使用"进阶版"时,就是运行容器,是要根据我的配置来的,所以就有了后面的一段"redis-server ../etc/redis/redis.conf"

就这一段,我纠结了将近俩小时。

程序一直给我提示错误,文件找不到,路径错误。

因为起初我使用的是 "redis-server /etc/redis/redis.conf", 当然也不光这一段,就在这一段上改来改去。

看看上面,发现这二者的区别没, 没错,就两个字符,"/etc"前面的两个点。因为它执行的文件目录原因吧,就一直找不到,当时的错误我没截图下来,有兴趣的同学可以自己尝试一下。我是四处百度钻研,都没找到答案,估计这太奇葩了,最后我就尝试了一下,这文件目录问题,我尝试改一下相对路径,就对了???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值