前言

搞技术就是动手,动手再动手,实践出真知,毕竟最终是要解决问题的呢,废话不多讲,开搞,主要是为了记录一下,毕竟过程还是有点艰辛呢

需求(target)

  1. Windows 电脑 装一个虚拟机
  2. 用虚拟机构造Linux 系统
  3. 下载Docker 搭建Redis 集群
  4. 代码交互集群

过关斩将

  1. 检查电脑是否开启虚拟话化
  2. VMware 或者 VirtualBox 等虚拟机软件

以VirtualBox 为例 (根据个人喜好)

1. 进入官网: https://www.virtualbox.org/ 2. 下载对应版本的压缩包文件:![virtualbox](https://img-blog.csdnimg.cn/c489543054784b50bdaa6807a4a2d462.png)

3.安装 (选择合适的物理盘)
4. 验证

快速搭建Linux(使用镜像)

1.使用vagrant
2.官网:
https://www.vagrantup.com/downloads
https://app.vagrantup.com/boxes/search


3. 安装 (电脑会自动重启)
4. 验证
win + R cmd 黑窗口 vagrant -v
有版本号 ,ok

5.构建Linux
1. vagrant box list (看看可使用的box 列表)
2. vagrant init boxName
例 vagrant init centos-7
会在安装的对应目录下生成一个


3. vagrant up (启动并创建Linux)
有时挺快,大部分时间会失败,因为是国外服务器,如果20分钟还没好就不等了
国内镜像:
https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box

4.vagrant box add E:\myLinux\CentOS-7.box –name centos-7 (加入box)
4. vargrant ssh (连接)
5. 可以 使用黑窗口 也可以使用xshell

下载docker image

1.卸载之前版本sudo yum remove -y docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine2. 安装需要的依赖包:sudo yum install -y yum-utils3. 配置阿里镜像sudo yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4. 更新安装docker 容器sudo yum install docker-ce docker-ce-cli containerd.io5. docker -v6.sudo systemctl start docker如果报错:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 更改文件类型:mv daemon.json daemon.conf6.查看docker 镜像:sudo docker images 7. 设置开机自启:sudo systemctl enable docker8. 由于权限问题 命令前加 sudo或者直接使用 root 账户 :su root

redis 集群搭建(3主3从)

1.docker search redis 2.docker pull redis (默认拉去最新的)3. 创建虚拟网卡创建虚拟网卡,主要是用于redis-cluster能于外界进行网络通信,一般常用桥接模式。docker network create myrediscluster 4. 查看Docker 网卡信息docker network ls 5.查看dockerr网络详细信息 docker network inspect myrediscluster 6、补充(删除网卡信息、帮助命令) docker network rm myrediscluster #删除网卡命令 多个中间 空格隔开docker network --help #显示可带参数等 7.编写配置文件此处用到了一点 shlle 编程中 的一些命令,让我们操作更加便利for port in $(seq 6390 6395); do mkdir -p /mydata/rediscluster/node-${ port}/conftouch /mydata/rediscluster/node-${ port}/conf/redis.confcat<< EOF > /mydata/rediscluster/node-${ port}/conf/redis.confport ${ port