本文主要是介绍windows使用docker安装redis并使用docker执行redis-cli,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 安装Windows Docker Desktop
- 下载Redis镜像
- 启动下载的Redis镜像的容器
- Redis-cli连接Redis
安装Windows Docker Desktop
下载并安装,docker hub登录之类不赘述
下载Redis镜像
启动docker desktop,本质是为了启动docker daemon(守护进程)。执行命令前必须保证docker daemon是启动状态
去docker hub寻找中意的镜像
我中意的是6.2.4-alpine,6.2.4是redis版本,目前最新,alpine是一个精简版linux,镜像基于alpine构建所以体积也小。
命令如下:
docker pull redis:6.2.4-alpine
启动下载的Redis镜像的容器
命令如下:
docker run -v C:\work\data\docker-redis-volume\conf:/usr/local/etc/redis --name myredis -d -p 6379:6379 redis:6.2.4-alpine redis-server /usr/local/etc/redis/redis.conf
先不要急着执行!! 还有一些微小的工作要做。
这个是我自己用的命令,看起来有点长,我解释一下
命令的核心其实就是这样:
docker run -d redis:6.2.4-alpine redis-server
只要这一句就可以启动redis了,这里-d是指在后台启动容器,只打印启动的容器的ID,不加的话容器执行的命令会打印到当前命令行,在这个例子中我们会看到redis的启动信息
接下来逐一介绍我使用的语句里的参数含义:
-v C:\work\data\docker-redis-volume\conf:/usr/local/etc/redis
-v是指将容器中的 /usr/local/etc/redis 目录挂载到宿主机的C:\work\data\docker-redis-volume\conf目录
后面的容器目录不用修改,前面的目录根据自己电脑的目录来修改
--name myredis
给你的容器起个名字,随便起吧
-p 6379:6379
-p用来映射容器的端口,前面是宿主机的,后面是容器里的
redis-server /usr/local/etc/redis/redis.conf
redis-server其实就是启动redis的命令,后面接上一个文件,表示使用这个配置文件来启动,这个配置文件的路径可以看到,和我们之前挂载出来的路径相同,结合前面的-v命令,意思就是使用宿主机中的C:\work\data\docker-redis-volume\conf\redis.conf文件作为配置文件启动容器中的redis。
这里配置文件可以去官网下载,根据自己的redis版本选择。
windows中注意修改配置文件中的如下几点:
#bind 127.0.0.1
这一行加上#号,表示不用绑定本地访问,这很重要,尤其在windows上,实测如果不注释,宿主机上都无法访问
不知道为什么,我在Mac系统上试过,可以不用注释这行,就能够本地访问。猜测可能是因为windows的wsl,宿主机的访问还是被当作外部访问了,有了解详情的高手可以指点一下。
然后的操作二选一,关闭保护模式或者设置密码,建议是设置密码
#protected-mode yes
注释这行关闭保护模式
requirepass 97812e6b-d9be-4cd1
或者打开这行设置密码
创建好目录,下载和修改了配置文件,准备工作完成,可以执行启动命令了。
之后docker ps查看可以看到:
Redis-cli连接Redis
使用docker装的redis,宿主机没有装redis自然也没有redis-cli了,那么怎么连接呢?
两种方式,一种直接进入redis容器内部执行redis-cli
$ docker exec -it a52dc redis-cli
这里-it是-i -t合起来的意思,作用是使用交互式命令行来进行操作,a52dc就是容器的id,docker很多命令都不要求id写全,只能达到区分效果就行
整句话的意思就是我要到a52dc这个容器内部去执行redis-cli命令,并且把这个命令的输入输出关联到当前的交互窗口
上面这个方式是最简单的,但是我们想模拟外部连接该怎么做呢,可以再启动一个只执行redis-cli的redis镜像
$ docker run -it --network container:a52dc --rm redis:6.2.4-alpine redis-cli
这个命令使用redis:6.2.4-alpine镜像启动另外一个容器,不过只是执行其中的redis-cli命令
这里–network后面是container用法,指定和a52dc这个 container公用一个网络
–rm表示当容器退出,就会自动删除容器和产生的相关文件,由于我们只是使用redis-cli命令,加上–rm非常合理
这种方式不仅可以连接本地,也可以连接远程redis,只需要在redis-cli之后接上相关参数,和使用redis-cli一样。
$ docker run -it --rm redis:6.2.4-alpine redis-cli -h some-host -p some-port
这篇关于windows使用docker安装redis并使用docker执行redis-cli的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!