项目中使用redis很常见,所以安装redis是每个小伙伴都应该熟练的技能。
这里定义两个概念 ,请记住。
- 宿主:你正在操作的linux系统(或是云服务器或者是实体服务)
- 容器:也就是在docker中虚拟出来的linux
1.安装redis
1.拉取镜像
这里也可以加上版本号,如果不加,默认最新。
1. docker pull redis 2. 复制代码
2.查看本地镜像
查看本地镜像是否成功。
1. docker images 2. 复制代码
3.修改配置
在linux新建任意一文件夹,这里楼主新建了/usr/local/redis 。在官网或者其他redis工程中,获取redis.conf,并以下配置修改好的后放入上文新建的文件夹中。
1. #bind 0.0.0.0 #带bind的注释掉 2. protected-mode yes #开启密码 云服务上一定要开启密码,防火墙 不信你就试试!!!!! 3. daemonize no #一定改为no 否则redis不能启动 而且没有日志!!!!!!!!!! 4. requirepass 123 #密码 5. 复制代码
4.新建数据文件夹
新建/usr/local/docker/data文件夹,放置容易映射过来的数据(对应着下文参数,可以修改,如果修改自己对应一下)
docker容器会与宿主机建立连接,然后将数据同步到宿主机中,这样就不用每次都进入docker容器操作文件了。
下图为安装后,宿主映射出来的文件数据。
5.运行容器
1. docker run -p 6379:6379 --name redis -v /usr/local/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes 2. 复制代码
命令中的文件夹路径是可以更改的,请按照个人环境自行修改。
6.命令解释
- -p 6379:6379:第一个6379是宿主机的端口,第二个6379是reids容器的向外提供的端口。这个意思也就是宿主使用6379端口接收redis容器6379发出的请求。
- --name redis :容器名称
- -v /usr/local/redis/redis.conf:/etc/redis/redis.conf :将上文指定宿主/usr/local/redis/redis.conf文件映射到容器的/etc/redis/redis.conf
- -v /usr/local/docker/data:/data :将容器的数据映射过来
- -d redis redis-server /etc/redis/redis.conf :将容器下/etc/redis/redis.conf文件作为容器redis的配置启动项
- --appendonly yes :标识开启持久化 这里只是演示可以通过这种方式设置参数
7.查询运行信息
1. docker ps 2. 复制代码
2.常见异常
1. changing ownership of '.': Permission denied或者chmod: changing permissions of'/var/lib/postgresql/data': Permission denied 2. 复制代码
以上错误时执行 -v /usr/local/redis/redis.conf:/etc/redis/redis.conf
出现的,因为docker容器没有宿主机的权限所以报错!
结论
关闭SELinux
1. getenforce #查看SELinux状态 permissive关闭状态 enforcing开启状态 2. setenforce 0 #临时关闭 3. setenforce 1 #临时开启 4. 5. //永久关闭 6. 修改 /etc/selinux/config 7. SELINUX=enforcing改为SELINUX=disabled