以前在centos7下面安装redis要做一堆操作,现在发现用docker安装redis可以做到急速安装,然后启动的时候只要带上配置文件创建容器就可以部署好了,所以将此次部署过程记录一下,以及干掉一些很坑的操作
1.docker查询redis版本
docker search redis
查询后看到很多版本,直接用star最多的那个
2.拉取redis镜像,我这里之前已经拉取到最新的镜像,所以没有下载执行,不影响后续操作
docker pull redis
3.查看本地镜像
docker images
4.获取官网的配置,获取官网的配置,官网链接为http://download.redis.io/redis-stable/redis.conf
顺带说明一下,配置文件记得把bind 127.0.0.1注释了,protect-mode yes 改为 protect-mode no ,daemonize yes 改成 daemonize no
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
5.上传文件到centos,我这里用的ftp上传服务,如果没有打开ftp服务,可以看看我之前的关于打开ftp文章,我这里是自己根目录下来的soft文件夹
6.先到centos里执行如下创建redis配置文件夹脚本
mkdir /usr/local/docker
7.拷贝刚刚上传的配置文件
##拷贝文件到刚刚的目录
cp /soft/redis.conf /usr/local/docker/
##查看该目录下是否有redis.conf
ls /usr/local/docker/
8.通过配置文件运行redis镜像
-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
-v /root/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /root/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
docker run -p 6379:6379 --name redis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf
9.查看redis容器是否正在运行,如果redis容器显示了up,这说明启动成功
10,最后说明下,如果使用了iptables防火墙记得把6379端口打开
11.执行命令,重启防火墙生效配置
systemctl restart iptables
12.如果启动失败,那么肯定是配置文件的问题,下载到windows下编辑的redis.conf容易翻车,顺便我贴下另一种开启成功的解决方案
##进入随意一个目录,我这里就在soft下
cd /soft
##wget获取安装包
wget http://download.redis.io/redis-stable.tar.gz
##解压安装包
tar xzf redis-stable.tar.gz
##修改解压后的包命
mv redis-stable redis
##进入安装包内
cd redis
##复制redis.conf到 /usr/local/docker/这个目录下,我这里就把原来的替换了
cp redis.conf /usr/local/docker
##修改配置
vim /usr/local/docker/redis.conf
##记得注释 bind 127.0.0.1 protectd-mode yes改成no daemonize-mode yes 改成 no
##替换成功后,重新执行脚本
docker run -p 6379:6379 --name redis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data --privileged=true -d redis redis-server /etc/redis/redis.conf --appendonly yes
##查看是否正常运行
docker ps -a
##up说明启动成功
##进入redis客户端
docker exec -it redis redis-cli
##输入auth密码,我已经在redis.conf里的 requirepass那里写了自己的密码
vincent
##如果客户端界面返回ok则说明成功