记录下自己在通过Docker部署Redis时遇到的那些坑
通过访问Docker官网可以清楚的了解怎么安装:Docker官网连接
阿里云也有教程教你怎么安装各类环境,如下截图:
这里我使用的是Centos 8,简单的记录下安装过程:
step1: 安装Docker依赖库
$ yum install -y yum-utils device-mapper-persistent-data lvm2
step2: 添加Docker CE的软件源
$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
step3: 缓存服务器上的软件包信息至本地,以提高搜索及安装软件的速度
$ yum makecache
step4: 安装docker ce,docker ce是docker社区版,也就是免费的
$ yum -y install docker-ce
step5: 启动docker
$ systemctl start docker
step6: 查看docker版本,如果显示了docker版本信息,恭喜你安装成功
$ docker version
step7: 安装好docker之后,我们会通过docker拉取各种镜像文件,这里可以配置下阿里的镜像加速器,这样下载镜像就不需要等待太长时间。
Step8: 镜像加速器配好了,重新加载服务配置文件
$ systemctl daemon-reload
Step9: 重启Docker服务
$ systemctl restart docker
最后,开始你的Docker学习之路吧
Step1: 选择Redis版本,我这里选择的是Redis 6.0.12版本。
Step2:下载Redis 6.0.12安装包,目的是配置redis.conf文件,这里直接在官网下载即可:https://redis.io/download,下载的文件是redis-6.0.12.tar.gz
Step3: 将redis-6.0.12.tar.gz压缩包文件上传到服务器,这里我购买的是阿里云服务器,通过XFTP进行上传,选择文件,点击右键选择传输即可。
Step4:将redis-6.0.12.tar.gz上传到Linux服务器,使用命令 tar -zxvf redis-6.0.12.tar.gz进行解压,得到解压后的文件
#解压文件
$ tar -zxvf redis-6.0.12.tar.gz
//解压后得到redis-6.0.12文件夹,进入解压后的文件夹
$ cd redis-6.0.12
#展示redis-6.0.12文件夹中的文件列表
$ ls
#终端会输出以下结果,其中包括了redis.conf,这个redis.conf就是我们需要的redis配置模板
[root@iZwz94razz4mp6w7gzfik5Z redis-6.0.12]# ls
00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest runtest-moduleapi sentinel.conf tests utils
BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster runtest-sentinel src TLS.md
Step5: 得到redis.conf配置之后,我们需要对redis.conf文件做一些修改,所以记得做好备份。这里建议通过XFTP拷贝到你的个人电脑上修改后再上传回服务器,也可以直接通过vim redis.conf编辑配置。
#bind 127.0.0.1 //如果你需要其他主机访问Redis,那么就注释掉这一行,这个配置只允许本机访问。
daemonize no //Redis默认不以守护进程的方式运行,所以值默认是no,如果你需要以守护进程的方式运行Redis,那么这里要改成yes。请注意:如果这个值为yes,那么以配置文件的方式启动Redis将失败。
protected-mode no //protected-mode默认是开启的,如果你想要其他主机能够连接Redis,那么这里设置为no
appendonly yes //持久化,默认是no,这里开启持久化
requirepass password//Redis密码,配置你想要设置的密码
说明:如果你是直接在Linux服务器下安装Redis,那么daemonize建议设置成yes,以守护进程的方式启动;如果你在Docker中部署Redis,那么daemonize值设置成no,否则你的Redis服务启动之后会立马跟你say bye bye(服务启动之后会立即停止).
Step6: 你还可以配置其他任何你想要进行的配置,请参考Redis官方文档:Redis官网
Step7:经过第5步,我们自定义的redis配置文件就搞定了,下面需要配置Redis相关的docker挂载,这里包括redis.conf(配置文件)和data(数据)
#这里我在服务器/home目录下创建了1个文件夹,用来存放redis挂载的数据
$ mkdir /home/docker/redis
#将redis.conf复制或移动到/home/docker/redis文件夹下面
$ cp -p ~/redis-6.0.12/redis.conf /home/docker/redis/
#在/home/docker/redis创建/data文件夹
$ mkdir /home/docker/redis/data
#至此,我们就在服务器上准备好了我们要挂载的目录,下面进行docker安装Redis操作
Step8: 下载Docker镜像
#下载镜像,这里需要指定版本,不指定版本默认下载latest版本
$ docker pull redis:6.0.12
#如果你的服务器配置了阿里云镜像加速器,那么下载会很快,稍等片刻,等下载完成后查看镜像
$docker images
Step9: 创建并运行redis
#执行下面指令,这里我配置了网络和IP,如果你没有配置网络及IP,那么需要把–network redis --ip 192.161.0.2去掉即可
$ docker run -d --name redis -p 6379:6379 -v /home/docker/redis/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data --network redis --ip 192.161.0.2 redis:6.0.12 redis-server /etc/redis/redis.conf --appendonly yes --protected-mode no
去掉网络配置之后如下:
$ docker run -d --name redis -p 6379:6379 -v /home/docker/redis/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data redis:6.0.12 redis-server /etc/redis/redis.conf --appendonly yes --protected-mode no
说明:这里一定要使用–protected-mode no,不然你创建Redis服务之后你的远程客户端(比如你的个人笔记本电脑)将无法访问,即使你在配置文件中设置了protected-mode的值为no,你还是无法访问,这个坑我踩过,希望你们避免它,在redis-server 命令后面加上–protected-mode no配置,完美避坑。
#解释:
-d : 后台允许
–name : 设置容器名称
-p : 设置宿主机(服务器)与Docker容器的端口映射
-v : 挂载,如果不懂什么是挂载的同学,请先学习下docker
–network : 指定网络
–ip : 指定IP地址
redis-server /etc/redis/redis.conf --appendonly yes : 这些很重要,/etc/redis/redis.conf表示了Redis服务器以指定的配置文件允许,而不是无配置文件运行,–appendonly yes表示开启Redis持久化
Step10:查看运行的容器
$ docker ps
Step11: 查看redis日志
$ docker logs redis