当前位置:首页 > 问答 > 正文

教你怎么用Docker快速搞定Redis镜像,简单又实用的步骤分享

(来源:CSDN博客《Docker实战:从入门到精通》)今天咱们就来聊聊怎么用Docker这个好工具,快速给自己弄一个Redis服务出来,你可能会想,装Redis又不是多难的事儿,为啥非要用Docker?嘿,等你试过就知道了,用Docker能省去一堆配置依赖的麻烦,尤其是当你需要在不同电脑或者服务器上部署的时候,优势就太明显了,它能把Redis和它需要的环境一起打包成一个“镜像”,这个镜像就像是一个现成的、封装好的软件安装包,你需要的时候,一条命令就能跑起来一个Redis服务,干净利落,不会把你本来的系统搞得乱七八糟,下面我就把最直接、最实用的步骤分享给你,一步步跟着做,十分钟内搞定它。

(来源:Docker官方文档)你电脑上得先有Docker,如果你是Windows或者macOS用户,直接去Docker官网下载个Docker Desktop安装就行,安装过程基本都是点“下一步”,Linux用户呢,用各自的包管理命令安装也很简单,比如Ubuntu用apt-get,装好之后,打开终端(或者叫命令行、CMD),输入docker --version,如果显示出版本号,那就恭喜你,准备工作OK了。

第一步,咱们得把Redis的官方镜像从仓库里拉取到自己的电脑上,这个仓库叫做Docker Hub,可以理解成一个巨大的免费软件应用市场。(来源:Redis官方Docker镜像页面)打开你的终端,输入下面这条命令:

docker pull redis:latest

敲下回车,你会看到Docker开始下载一堆东西,这个redis:latest的意思就是拉取最新稳定版的Redis镜像。pull就是拉取的动作,这个过程需要一点时间,取决于你的网速,下载完成后,你可以输入docker images命令看一眼,应该就能看到一个名叫redis、标签是latest的镜像安安静静地躺在列表里了,这就好比你把一个软件安装包下载到了本地,随时可以安装。

光有安装包还不行,得把它运行起来,第二步就是启动Redis容器,容器是什么呢?你可以把它理解成是镜像运行起来后的一个实例,一个活生生的、正在工作的Redis服务。(来源:Docker run命令参考)我们用docker run这个命令来启动它,但直接docker run redis虽然能启动,却不太实用,因为我们需要做一些配置,比如让它可以被外部程序访问,或者设置密码。

这里给你一个最实用、最常用的启动命令:

docker run -d --name my-redis -p 6379:6379 redis:latest

我来解释一下这几个参数是干啥的:

  • -d:这是--detach的简写,意思是在后台运行这个容器,这样你启动之后,终端还能继续用,不会卡在那里。
  • --name my-redis:给这个容器起个名字,方便以后管理,这里我起名叫my-redis,你可以随便改成你喜欢的,比如test-redis
  • -p 6379:6379:这是最关键的端口映射,冒号前面的6379是你电脑(宿主机)的端口号,冒号后面的6379是容器内部Redis服务默认的端口号,这个设置的意思就是,把你电脑的6379端口和容器里的6379端口连起来,这样,你本地的程序(比如用Python、Java写的应用)通过连接localhost:6379,就能访问到Docker容器里的Redis服务了。
  • 最后的redis:latest就是指定用哪个镜像来启动容器。

执行完这条命令,一个Redis服务器就在后台悄无声息地跑起来了,你可以用docker ps命令查看一下正在运行的容器,应该能看到my-redis的状态是“Up”。

(来源:常见安全实践)如果你担心安全问题,比如不想让Redis没有密码就能访问,可以在启动的时候设置密码,Redis的官方镜像支持通过环境变量来配置,我们稍微修改一下启动命令:

docker run -d --name my-redis-with-password -p 6379:6379 -e REDIS_PASSWORD=your_strong_password redis:latest redis-server --requirepass ${REDIS_PASSWORD}

这条命令多了个-e REDIS_PASSWORD=your_strong_password-e是用来设置环境变量的,这里我们设置了一个叫REDIS_PASSWORD的变量,值就是你设定的密码(记得把your_strong_password换成真正的复杂密码),命令最后的部分redis-server --requirepass ${REDIS_PASSWORD}是告诉容器启动时,执行Redis服务器命令,并传入--requirepass参数来启用密码认证,密码的值就从刚才的环境变量里取。

现在服务跑起来了,怎么验证它工作正常,又怎么使用它呢?第三步,我们连接到这个Redis服务试试。(来源:Docker exec命令参考)最方便的方法就是直接进入容器内部,使用Redis自带的命令行客户端,输入以下命令:

docker exec -it my-redis redis-cli

docker exec是在运行的容器里执行命令。-it是两个参数合在一起,-i是保持标准输入打开,-t是分配一个伪终端,这样你就能和容器内部交互了。my-redis是容器的名字,redis-cli就是要执行的命令,也就是启动Redis客户端。

如果一切正常,你的命令行提示符会变成0.0.1:6379>,这说明你已经成功连上了自己刚启动的Redis服务器,现在你就可以随便测试Redis命令了。

  • 输入 set mykey "Hello Docker Redis" 然后回车,设置一个键值对。
  • 再输入 get mykey 回车,它应该会返回 "Hello Docker Redis"
  • 输入 exit 可以退出这个客户端。

如果你启动的是带密码的容器,连接命令需要稍作改动:

docker exec -it my-redis-with-password redis-cli -a your_strong_password

就是在redis-cli后面加了-a参数来指定密码。

好了,到这里,你已经成功地用Docker部署并验证了一个Redis服务,那如果我想关掉它怎么办?(来源:Docker基本管理命令)很简单,用docker stop my-redis命令就能停止这个容器,用docker start my-redis又能重新启动它,如果你彻底不需要了,想删除容器释放空间,可以先docker stop my-redis停止它,然后docker rm my-redis删除它,甚至你想连下载的镜像也删掉,可以用docker rmi redis:latest

核心步骤就三步:一pull拉取镜像,二run运行容器(记得用-p映射端口),三exec进入容器测试,这套方法不仅适用于Redis,对于很多其他像MySQL、Nginx这样的服务,思路也都是相通的,用熟了Docker,你会发现管理和部署服务变得前所未有的轻松,希望这个简单又实用的分享能帮你快速上手!

教你怎么用Docker快速搞定Redis镜像,简单又实用的步骤分享