写点什么

docker 部署 redis 记录,楼主亲测无异常

用户头像
小黄鸡1992
关注
发布于: 1 小时前
docker部署redis记录,楼主亲测无异常

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


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


  1. 宿主:你正在操作的 linux 系统(或是云服务器或者是实体服务)

  2. 容器:也就是在 docker 中虚拟出来的 linux

1.安装 redis

1.拉取镜像

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


docker pull redis
复制代码

2.查看本地镜像

查看本地镜像是否成功。


docker images
复制代码


3.修改配置

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


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

4.新建数据文件夹

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


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


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


5.运行容器

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.查询运行信息

docker ps
复制代码


2.常见异常

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


getenforce #查看SELinux状态 permissive关闭状态 enforcing开启状态setenforce 0 #临时关闭 setenforce 1 #临时开启  //永久关闭修改 /etc/selinux/configSELINUX=enforcing改为SELINUX=disabled
复制代码


用户头像

小黄鸡1992

关注

还未添加个人签名 2021.07.13 加入

还未添加个人简介

评论

发布
暂无评论
docker部署redis记录,楼主亲测无异常