前言

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

docker images

发现镜像里面nginxmysql,并没有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显示一个或多个图像的详细信息那么组合一下,就是这样:https://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”连接一下试试:

上面这样也就可以了。

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

人家nginxmysql,都有配置文件的啊,同样也是数据库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”前面两个点。因为它执行文件目录原因吧,就一直找不到,当时的错误我没截图下来,有兴趣的同学可以自己尝试一下。我是四处百度钻研,都没找到答案估计这太奇葩了,最后我就尝试了一下,这文件目录问题,我尝试改一下相对路径,就对了???

原文地址:https://blog.csdn.net/longfeng995/article/details/129016935

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11961.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注