docker部署redis记录,楼主亲测无异常| 8月更文挑

项目中使用redis很常见,所以安装redis是每个小伙伴都应该熟练的技能。

这里定义两个概念 ,请记住。

  1. 宿主:你正在操作的linux系统(或是云服务器或者是实体服务)
  2. 容器:也就是在docker中虚拟出来的linux

1.安装redis

1.拉取镜像

这里也可以加上版本号,如果不加,默认最新。

1
复制代码docker pull redis

2.查看本地镜像

查看本地镜像是否成功。

1
复制代码docker images

image.png

3.修改配置

在linux新建任意一文件夹,这里楼主新建了/usr/local/redis 。在官网或者其他redis工程中,获取redis.conf,并以下配置修改好的后放入上文新建的文件夹中。

1
2
3
4
yaml复制代码#bind 0.0.0.0 #带bind的注释掉
protected-mode yes #开启密码 云服务上一定要开启密码,防火墙 不信你就试试!!!!!
daemonize no #一定改为no 否则redis不能启动 而且没有日志!!!!!!!!!!
requirepass 123 #密码

4.新建数据文件夹

新建/usr/local/docker/data文件夹,放置容易映射过来的数据(对应着下文参数,可以修改,如果修改自己对应一下)

docker容器会与宿主机建立连接,然后将数据同步到宿主机中,这样就不用每次都进入docker容器操作文件了。

下图为安装后,宿主映射出来的文件数据。

image.png

5.运行容器

1
bash复制代码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

命令中的文件夹路径是可以更改的,请按照个人环境自行修改。

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

image.png

2.常见异常

1
bash复制代码changing ownership of '.': Permission denied或者chmod: changing permissions of'/var/lib/postgresql/data': Permission denied

以上错误时执行 -v /usr/local/redis/redis.conf:/etc/redis/redis.conf 出现的,因为docker容器没有宿主机的权限所以报错!

结论

关闭SELinux

1
2
3
4
5
6
7
ini复制代码getenforce #查看SELinux状态 permissive关闭状态 enforcing开启状态
setenforce 0 #临时关闭
setenforce 1 #临时开启

//永久关闭
修改 /etc/selinux/config
SELINUX=enforcing改为SELINUX=disabled

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%