前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker安装Redis

Docker安装Redis

作者头像
taixingyiji
发布2022-10-27 16:27:07
2.7K0
发布2022-10-27 16:27:07
举报
文章被收录于专栏:taixingyiji的博客笔记

一、安装Docker

本人电脑为mac,直接下载docker dmg文件

Linux查看此处

#二、获取redis镜像

代码语言:javascript
复制
docker search redis

docker pull redis:latest

docker images

#三、创建容器

#1、新建一个redis目录,用于存放redis.conf

代码语言:javascript
复制
mkdir onlineinternship/redis
cd redis

#2、下载redis官方配置文件

redis配置文件

#3、修改配置项

代码语言:javascript
复制
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问

protected-mode no #默认yes,开启保护模式,限制为本地访问

daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败

databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。

dir  ./ #输入本地redis数据库存放文件夹(可选)

appendonly yes #redis持久化(可选)

logfile "access.log"

requirepass 123456(设置成你自己的密码)

protected-mode 是在没有显示定义 bind 地址(即监听全网断),又没有设置密码 requirepass 时,protected-mode 只允许本地回环 127.0.0.1 访问。 也就是说当开启了 protected-mode 时,如果你既没有显示的定义了 bind 监听的地址,同时又没有设置 auth 密码。那你只能通过 127.0.0.1 来访问 redis 服务。

#4、创建并命名一个叫做myredis的容器

代码语言:javascript
复制
docker run \
-p 6379:6379 --name myredis \
-v/Users/bochenghu/onlineinternship/redis/redis.conf:/etc/redis/redis.conf \
-v /Users/bochenghu/onlineinternship/redis/data:/data:rw \
--privileged=true -d redis redis-server /etc/redis/redis.conf \
--appendonly yes

参数解释说明:

  • -p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
  • --name myredis 指定该容器名称,查看和进行操作都比较方便。
  • -v 挂载配置文件目录,规则与端口映射相同。 为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。 例: -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf 容器 /etc/redis/redis.conf 配置文件 映射宿主机 /usr/local/docker/redis/redis.conf。 会将宿主机的配置文件复制到docker中 重要: 配置文件映射,docker镜像redis 默认无配置文件。
  • -v 挂在数据卷 /Users/bochenghu/onlineinternship/redis/data:/data:rw 映射数据目录 rw 为读写
  • -d redis 表示后台启动redis
  • redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/redis.conf 重要: docker 镜像redis 默认 无配置文件启动
  • --appendonly yes 开启redis 持久化

#5、查看活跃的容器

代码语言:javascript
复制
# 查看活跃的容器
docker ps
# 如果没有 myredis 说明启动失败 查看错误日志
docker logs myredis
# 查看 myredis 的 ip 挂载 端口映射等信息
docker inspect myredis
# 查看 myredis 的端口映射
docker port myredis

#四、外部访问redis容器服务

代码语言:javascript
复制
# redis-cli 访问
docker run -it --link myredis:redis --rm redis redis-cli -h redis -p 6379
# -it 交互的虚拟终端
# --rm 退出是删除此容器

或者使用 shell 登录容器内操作

代码语言:javascript
复制
docker exec -it myredis bash
redis-cli

配置完成

#五、主从配置

新建一个redis-slave容器(同新建redis)

代码语言:javascript
复制
docker run -p 6380:6380 --name redis-slave -v /Users/bochenghu/onlineinternship/redisSlave/redis.conf:/etc/redis/redis.conf -v /Users/bochenghu/onlineinternship/redisSlave/data:/data:rw --privileged=true -d redis redis-server /etc/redis/redis.conf --appendonly yes

查看redis master的内部IP

image
image
代码语言:javascript
复制
修改 redis-slave 的配置文件
# 主地址
replicaof 172.17.0.2 6379
# 主认证
masterauth hubocheng

重启redis-slave

代码语言:javascript
复制
docker restart redis-slave

登录 redis master 使用 info 命令查看从的状态

如果配置不成功记得检查 redis master 的 bind 和 protected-mode 的设置,看下有没有监听内网地址,否则 redis-slave 没办法通过 redis master 的地址做数据同步

image
image

登陆redis master后使用info,显示主从关联成功

原文地址:https://segmentfault.com/a/1190000039769819

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装Docker
  • #二、获取redis镜像
  • #三、创建容器
    • #1、新建一个redis目录,用于存放redis.conf
      • #2、下载redis官方配置文件
        • #3、修改配置项
          • #4、创建并命名一个叫做myredis的容器
            • #5、查看活跃的容器
            • #四、外部访问redis容器服务
            • #五、主从配置
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档