哨兵和docker容器
1,redis哨兵的配置
redis-6379配置文件内容如下
cat redis-6379.conf port 6379
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/var/redis/data/"
daemonize yes
配置3个哨兵配置文件都上边所示,只不过端口要改变
2,启动三个端口实例
- redis-server redis-6379.conf
- redis-server redis-6380.conf
- redis-server redis-6381.conf
3,检查三个redis实例的主从身份关系
- redis-cli -p 6379 info replication
- redis-cli -p 6380 info replication
- redis-cli -p 6381 info replication
4,配置三个哨兵
- redis-sentinel-26379.conf
- redis-sentinel-26380.conf
- redis-sentinel-26381.conf
配置文件如下:
# Sentinel节点的端口
port 26379
dir /var/redis/data/
logfile "26379.log" # 当前Sentinel节点监控 127.0.0.1:6379 这个主节点
# 2代表判断主节点失败至少需要2个Sentinel节点节点同意
# mymaster是主节点的别名
sentinel monitor mymaster 127.0.0.1 6379 2 # 每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
sentinel down-after-milliseconds mymaster 30000 # 当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel paralle
启动3个哨兵
- redis-sentinel redis-sentinel-26379.conf
- redis-sentinel redis-sentinel-26380.conf
- redis-sentinel redis-sentinel-26381.conf
检查redis哨兵身份信息,检查主从节点状态
- redis-cli -p 23679 info sentinel
- redis-cli -p 26380 info sentinel
- redis-cli -p 26381 info sentinel
配置好以后,杀死master节点,查看主从身份切换是否正常
5,哨兵集群
- 查看redis配置文件,修改6个文件不同的端口配置
sed 's/7000/7001/g' redis-7000.conf #此时还未生效,只返回处理结果
-i 参数,写入到文件 insert sed -i 's/7000/7001/g' redis-7000.conf #对这个文件修改 sed 's/7000/7001/g' redis-7000.conf > redis-7001.conf sed linux处理字符串的命令 's/7000/7001/g' 第二空格 放入你想替换的内容
s 代表替换指令
/你想换的内容/你想替换后的内容/
g 全局替换 globol redis-7000.conf 操作的对象,将这个文件内的所有7000替换为7001
配置6个文件redis.conf,只是端口不一样
port 7000
daemonize yes
dir "/opt/redis/data"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-require-full-coverage no
6,安装配置环境,用于一键搭建redis集群
- 下载源码:
- wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
- 解压缩ruby
- tar -xvf ruby-2.3.1.tar.gz
- 编译安装ruby
- ./configure --prefix=/opt/ruby/
make && make install
- ./configure --prefix=/opt/ruby/
7,准备ruby环境
- cp ./bin/ruby /usr/local/bin/
cp ./bin/gem /usr/local/bin
8,下载ruby的软件包管理工具
- wget http://rubygems.org/downloads/redis-3.3.0.gem
- gem install -l redis-3.3.0.gem #安装ruby操作redis的模块
9,查看ruby包括哪些语言
- gem list -- check redis gem
10,配置环境变量redis-trib.rb,用于创建redis-cluster
#找到这个redis-trib.rb命令在哪里
[root@node1 /opt/redis-4.0.10/src 10:28:32]#find /opt -name redis-trib.rb
/opt/redis-4.0.10/src/redis-trib.rb
#配置环境变量,用于快速执行redis-trib.rb这个命令
cp /opt/redis-4.0.10/src/redis-trib.rb /usr/local/bin/
11,通过redis-trib.rb命令,一键创建redis-cluster集群功能
#其实就是分配槽位,分配主从关系
#通过这个命令,创建集群功能
#1 代表每个主只有一个从
#自动给后面6个节点,分配主从关系,7000、7001、7002是主节点,7003、7004、7005是从节点
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
12,写入数据,来使用redis集群,查看集群节点的身份信息
- redis-cli -p 端口 info repliaction
- redis操作集群数据,通过-c参数才能制定集群功能
- redis-cli -p 7000 -c
13,解决环境依赖的问题
虚拟机,定制操作系统模板
vmware esxi 定制一个centos镜像板块,在模板中安装vim, 安装python3, 安装django,用过镜像模块安装系统,也可以解决环境依赖问题.
14,docker的三大基本概念
- 容器(container)相当于class()实例化一个对象
- 镜像(image)相当于class一个类
- 仓库(repository,存放镜像文件的地方)
15,centos安装docker
- 编译安装,源码安装
- yum安装,如果网速太慢,可以选择阿里云的源,缺点就是版本低,可以选择aliyun的yum源,docker就是存在于epel源中,如果网速够快,安装官方源
- yum install docker* docker-* -y #安装docker服务器
- 启动docker:
- systemctl start docker
- systemctl status docker
- 查看docker是否正确运行
- docker version
- 简单使用docker
- docker search hello-world
- docker pull hello-world
- docker image ls # 查看镜像
- docker容器的基本操作
- 启动docker容器
- docker start 容器id
- 暂停docker容器
- docker stop 容器id
- 进入容器
- docker exec -it 容器id
- -i 交互式操作
- -t 开启一个终端
- docker exec -it 容器id
- 创建容器实例
- docker run 镜像名
- 删除容器记录,必须提前docker stop 容器id, 只能杀死已经停掉的容器
- docker rm 容器id
- 查看容器正在运行的记录
- docker ps
- 显示所有容器记录的号
- docker ps -aq
- -a显示所有容器记录
- -q显示容器id
- docker ps -aq
- 一次性删除所有容器记录
- docker rm `docker ps -aq`
- 查看容器正在运行的记录
- docker container ls
- 容器id记录,提交这个容器,创建一个新的镜像
- docker commit
- 查看容器运行日志
- docker logs
- -f 不间断打印容器日志
- docker logs
- 查看容器的端口映射关系(外部访问到容器内的端口)
- docker run -d centos -P
- docker port
- -d 后台运行
- -p 随机映射端口
- -P 9000(宿主机):5000(容器内)
- --name 给创建的容器记录,添加别名
- 启动docker容器
- docker容器镜像的命令
- 查看镜像运行状况
- docker image ls
- docker images
- docker仓库, dockerhub
- docker pull 镜像名
- 把本地的镜像推送到dockerhub仓库
- docker push 镜像名
- 搜索镜像
- docker search 镜像名
- 删除镜像
- docker rmi
- 查看docker版本,查看打匹配server和client两个端
- docker version
- 启动docker
- systemctl start docker
- 导出镜像
- docker save 镜像名 > /data/centos.tar.gz
- 导入镜像
- docker load < /data/centos.tar.gz
- 运行镜像文件,产生一个容器实例
- docker run 镜像名
- 查看镜像运行状况
16,容器内应用,外部也是可以访问的,通过-p参数进行端口映射
- 下载镜像
- docker pull training/webapp
- 运行镜像,产生容器记录
- docker run -d -P 镜像id python app.py
- -d 后台运行
- -P 将容器内的5000端口随机映射到宿主机的一个端口
- docker run -d -P 镜像id python app.py
哨兵和docker容器的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker容器环境下ASP.NET Core Web API应用程序的调试
本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...
- 在docker容器中vi指令找不到
在使用docker容器时,有时候里边没有安装vi,敲vi命令时提示说:vi: command not found,这个时候就需要安装vi,可是当你敲apt-get install vi命令时,提示: ...
- 理解Docker(4):Docker 容器使用 cgroups 限制资源使用
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- docker学习(5) 在mac中创建mysql docker容器
github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql ...
- 在Linux和Windows的Docker容器中运行ASP.NET Core
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott H ...
- 自定义Docker容器的 hostname
自定义Docker容器的 hostname 作者: John Deng 原创内容,欢迎传播,请注明出处:http://www.cnblogs.com/johnd/p/set-docker-host ...
- Docker容器是否可以改变世界?
Docker容器是否可以改变世界? 2016-01-15 杜亦舒 2016年了,很多大牛开始预测技术趋势,其中一个普遍的观点我也很认同: Docker会更加流行,会改变程序世界 2015年的上半年我接 ...
- 搭建ubuntu14.04的hadoop集群【docker容器充当服务器】
首先弄出来装有hadoop.java.ssh.vim的镜像起名badboyf/hadoop.做镜像有两种方法,一种是用Dockerfile来生成一个镜像,一种是基于ubuntu14.04的基础镜像生成 ...
随机推荐
- Oracle的五种约束
1.非空(NOT NULL)约束:所定义的列不绝对不能为空: 例如:将已经创建好的表BOOK中的bookname字段修改为不为空: 利用 ALTER TABLE.......MODIFY ...... ...
- 如何用纯 CSS 创作一种文字断开的交互特效
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/LmjNgL 可交互视频教程 此视 ...
- ubuntu mysql配置方案
Ubuntu常用服务器环境搭建--MySQL篇 MySQL 1.安装MySQL apt-get update apt-get install mysql-server 2.配置MySQL vi /et ...
- Django 1.8.11 REST风格路由
# -*- coding: utf-8 -*- """ Tencent is pleased to support the open source community b ...
- 对于单片机工程.h头文件的管理
最近工程管理过于混乱,学习了一些工程头文件管理的方法,现在做一个记录,也分享给大家. 目前有两种管理文件的方式: 1.每一个功能模块对应一个文件夹,里面包含一个.c和一个.h文件如下图所示 这样做的好 ...
- linux 配置文件要不要加上#! /bin/bash
现在一般的linux系统默认的shell都是bash.所以但很多unix系统可能会用bourne shell.csh或者ksh等来作为用户默认shell 如果你在写shell脚本的时候,用的语法只有b ...
- left join 与left outer join的区别
joinn 语句有三种:inner join, left outer join 和 right outer join都可以简写,分别为join,left join,right join.
- 洛谷P1771 方程的解_NOI导刊2010提高(01)
题目描述 佳佳碰到了一个难题,请你来帮忙解决. 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数), ...
- BZOJ1744: [Usaco2005 oct]Skiing 奶牛滑雪
n<=100 * m<=100的地图,每个数绝对值不超过25,从1,1到n,m,一开始速度v,从数字A走到数字B速度会变成v*2^(A-B),求到终点最短时间. 可以发现,相同的数字出发的 ...
- 《APP开发》APP规范实例-详细的UI设计方法
对了一个APP开发初手来说,可能心里有很多的疑惑: 屏幕设计为多宽,宽度是不是应该设置为百分比; 按钮大小多大,怎么排列,文字字体用多大的?什么字体显示好看?图标多大,怎么用色?界面怎么布局?等等很多 ...