docker进入redis容器(Docker配置redis哨兵模式的方法多服务器上)
类别:服务器 浏览量:1378
时间:2021-10-22 07:43:49 docker进入redis容器
Docker配置redis哨兵模式的方法多服务器上目录
- 前言
- 条件
- 安装Docker
- 配置redis主从节点
之前学习的redis一直是在单一服务器上运行的,而且是直接部署在服务器上。听说用docker会让配置过程更轻松 (并没有)这次就在用Docker的基础上配置Redis一主一从三哨兵。本篇为配置数据节点,即一主一从两个节点。
三台服务器(因为需要至少三个哨兵保证安全性)【可以在阿里云上租几个小时】
- 服务器1:8.131.78.18
- 服务器2:8.131.69.106
- 服务器3:8.131.71.196
- 端口号7000、17000已在安全组上放行(阿里云)
- 环境:centos8.0
逐行执行以下指令:
# 1. 更新编译环境 yum -y install gcc # 2. 同上 yum -y install gcc-c++ # 3. 安装docker # 3.1 卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 3.2 安装需要的安装包 yum install -y yum-utils # 3.3设置镜像的仓库,推荐使用国内的镜像,比较快 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 3.4 更新yum软件包索引,功能是将软件包缓存在本地一份 yum makecache # 3.5 安装docker相关的 docker-ce 社区版 yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm # 3.6 安装 yum install docker-ce docker-ce-cli containerd.io # 3.7 启动docker systemctl start docker # 3.8 设置为后台启动 systemctl enable docker # 3.9 使用docker version查看是否按照成功 docker version # 3.10 测试(可以不做) docker run hello-world # 3.11 卸载删除(仅供参考,本次不做) yum remove docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker # 4. 配置加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://qdxc3615.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
我们使用的服务器是服务器1和服务器3(本来是一主两从,我把服务器2关了)。
TIPS: 对于xshell可以使用右键选择发送键输入到所有会话,这样就不需要配置两遍了。或者使用scp语句将配置好的文件共享给其他服务器:
# scp local_file remote_username@remote_ip:remote_folder scp redis.conf root@58.131.71.196:/blue/redis02
1.首先创建文件夹,注意不要放在home路径下,否则容易因为权限问题是容器运行失败。我创建的目录为/blue/redis02,指令比较简单:
cd / mkdir blue && cd blue mkdir redis02 && cd redis02
2.创建Dockerfile,Dockerfile是为了加载一些我们需要的环境。
vi Dockerfile # Dockerfile内容如下: # 从基础镜像redis继承 FROM redis MAINTAINER blue<blue@email.com> # 将Dockerfile所在目录下的文件复制到容器/usr/local/etc/redis目录下 COPY redis.conf /usr/local/etc/redis/redis.conf # 安装一些环境 RUN apt-get update RUN apt-get install -y vim RUN apt-get install procps --assume-yes VOLUME ["/data"] WORKDIR /etc/redis # 开放端口7000 EXPOSE 7000 # 使用配置文件启动 CMD [ "redis-server", "/usr/local/etc/redis/redis.conf"]
3.从官网上下载一个redis.conf并做如下修改。redis.conf则是redis的一些配置,这个和单机的redis一主一从三哨兵的配置基本相同。
# 注释掉bind 127.0.0.1 # bind 127.0.0.1 port 7000 # 这里如果是yes会影响使用配置文件启动 daemonize no pidfile /var/run/redis_7000.pid # 需要设置以下两处密码,密码要一致 requirepass testmaster123 masterauth testmaster123 # 修改保护模式,如果是yes会导致外部服务器无法访问 protected-mode no # 对于服务器3,还需要加上一句,表示是服务器1的从服务器 # slaveof 主.机.I.P 端口 slaveof 8.131.78.18 7000
4.保存好以上配置之后可以使用以下语句创建镜像,这个过程时间比较长,需要耐心等待:
# 应该用 docker build -t myredis . 比较有辨识度的,但是作为测试的时候就成功了,也不想修改了。这句话是根据我们的Dockerfile创建一个新的镜像。可以把他push到仓库去,这样下次可以直接拉取。 docker build -t test .
5.使用如下语句启动容器:
# 启动容器 docker run -d -p 7000:7000 --name redis-test test # 以下语句查看运行中的容器 docker ps #进入容器内部 docker exec -it redis-test /bin/bash
6.在容器内部可以使用以下语句查看在运行的线程:
# 查看运行的线程 ps -ef # 使用redis客户端访问7000端口 redis-cli -p 7000 # 输入密码 auth testmaster123 # 查看信息 info replication # 以下为从节点返回的信息 # Replication role:slave master_host:8.131.78.18 master_port:7000 master_link_status:up master_last_io_seconds_ago:10 master_sync_in_progress:0 slave_repl_offset:28 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:438c700922a30ebbc66ee5c89a176c426924b2a7 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:28 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:28
至此主从节点配置成功。
到此这篇关于Docker配置redis哨兵模式(多服务器上)的文章就介绍到这了,更多相关Docker配置redis哨兵模式内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- docker镜像简介(详解使用阿里云镜像仓库构建国外Docker镜像)
- python配合docker(Docker构建python Flask+ nginx+uwsgi容器)
- dockergitlab服务器搭建(基于Docker部署GitLab环境搭建的方法步骤)
- docker搭建方法(超简单实现Docker搭建个人博文系统)
- docker启动项目需要tomcat吗(docker安装tomcat并部署Springboot项目war包的方法)
- 运行docker时提示端口已被占用(docker 突然不能被外网访问的解决方案)
- docker swarm管理(Docker Swarm 服务编排之命令详解)
- dockerexec详解(docker中的run/cmd/entrypoint的区别详解)
- 怎么用docker中的mysql连接数据库(连接docker里面的mysql失败解决方法)
- 无法访问docker容器内的端口(docker容器中切换用户,提示权限不足的解决)
- dockerip访问限制(docker win ping 不通容器 避坑指南)
- springcloud部署docker(Spring Cloud中使用jib进行docker部署的步骤详解)
- docker镜像查看分层(Docker 镜像优化从1.16GB到22.4MB)
- docker查看镜像详细内容(Docker镜像分析工具dive原理解析)
- dockernginx怎么设置容器(docker nginx + https 子域名配置详细教程)
- docker入门搭建博客(快速掌握使用Docker搭建开发环境)
- 新一小兰领衔 盘点动漫中的那些 远距离恋爱情侣(盘点动漫中的那些)
- 大事件 合肥四中火了(大事件合肥四中火了)
- 翼龙贷组织出借人调研 感受鄱阳 借 来的致富路(翼龙贷组织出借人调研)
- 2023新国风戏曲教育寒假集训班汇报演出《戏娃闹元宵》图文报道(2023新国风戏曲教育寒假集训班汇报演出戏娃闹元宵图文报道)
- 九儿《狐踪谍影》出演热血女特警,戏份杀青受关注(九儿狐踪谍影出演热血女特警)
- 红色代表什么(红色代表什么寓意)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9