博客
关于我
linux8 redis集群槽+docker
阅读量:791 次
发布时间:2023-02-02

本文共 2889 字,大约阅读时间需要 9 分钟。

Docker私有仓库搭建及常见问题解析

Docker pull hello-world失败,一键解决方案

Docker pulling "hello-world"会失败?别担心,简单修改镜像名即可解决!若还是有其他问题,请继续阅读。


Redis-Cluster 集群搭建指南

背景

在分布式系统中,Redis-Cluster如何解决高并发与大数据存储问题?

  • 并发问题
    • 推чивtwitter开源 Redis团队实现
  • 数据过大
    • 单机存存不下,需分布式解决方案
  • 正确方案
    • 数据分片存储至多个Redis节点,通过分区槽位分配

Redis-Cluster搭建步骤

  • 环境准备

    准备6个Redis节点配置文件,分别对应7000-7005端口。

  • 快速生成节点配置文件

  • mkdir -p /opt/redis/data/{7000,7001,7002,7003,7004,7005}sed "s/7000/7001/g" redis-7000.conf > redis-7001.conf...
    1. 启动Redis节点
    2. redis-server redis-7000.conf...
      1. 数据分配与集群节点管理
        • 使用Ruby脚本工具自动分配slot(基于redis-trib.rb
        /opt/redis-4.0.10/src/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
        1. 集群状态监控(Redis Sentinel)
          • 配置 Sentinel检测主节点状态
          sentinel monitor master1 127.0.0.1 7000 2sentinel down-after-milliseconds master1 30000
          • 启动Sentinel
          redis-server redis-26379.conf
          1. 查看集群状态
          2. redis-cli -p 7000 cluster inforedis-cli -p 7000 cluster nodes

            Ruby与Redis交互

            安装Ruby环境

          3. 下载 Ruby 解释器
          4. wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
            1. 编译安装
            2. tar -zxvf ruby-2.3.1.tar.gzcd ruby-2.3.1./configure --prefix=/opt/ruby231make && make install
              1. 环境变量配置
              2. vim /etc/profilesource /etc/profile
                1. 安装Redis客户端 gem
                2. gem install redis-3.3.0.gem

                  Redis-Cluster常见问题

                  问题1: Slot未服务

                  • 错误提示
                    Failed to execute command CLUSTERDOWN on hash slot
                  • 解决方法
                    使用redis-trib.rb分配哈希槽
                    /opt/redis-4.0.10/src/redis-trib.rb fix 127.0.0.1:7005

                  Docker容器管理实用指南

                  基本操作

                3. 运行交互式容器
                  • Ubuntu
                  docker run -it ubuntu /bin/bash
                  • CentOS
                  docker run -it centos /bin/bash
                  1. 后台运行容器
                  2. docker run -d centos /bin/sh -c "while true; do echo '服务器运行中' && sleep 1; done"
                    1. 查看容器日志
                    2. docker logs -f 容器id
                      1. 删除容器记录
                        • 删除单个容器
                        docker rm 容器id
                        • 批量删除
                        docker rm -a

                        Docker镜像操作

                        自定义镜像

                      2. 运行CentOS镜像并安装Vim
                      3. docker run -it centos /bin/bashyum install -y vim
                        1. 提交镜像并下载
                        2. docker commit 5c2 s20/centos-vimdocker imagesdocker save s20/centos-vim:latest /opt/s20-centos-vim.tar.gz
                          1. 导入镜像并指定标签
                          2. docker load < /opt/s20-centos-vim.tar.gzdocker tag 621 liuyang/s20-centos-vim

                            Docker容器与虚拟化对比

                            • 虚拟机(Hypervisor)
                              • 一整套操作系统,资源分配复杂
                            • Docker容器
                              • 过程级虚拟化,资源占用轻量
                            • 主要区别
                              • Hypervisor:完整的系统
                              • Docker:基于镜像的运行环境

                            Docker环境一致性

                            整体优化方案

                            • 环境配置管理
                              • 使用Ansible/SaltStack自动化配置,确保一致性
                            • 快速迭代
                              • 基于镜像构建容器,动态调整配置

                            Docker日志优化

                            • 查看最新日志
                              docker logs -f
                            • 指定日志级别
                              docker logs -l --force --time false 容器id

                            Docker镜像下载方式

                          3. 公开镜像
                          4. docker pull hello-world
                            1. 私有镜像
                            2. docker pull 192.168.230.132:5000/s20-hello-world
                              1. 通过Dockerfile构建镜像
                              2. FROM centosCOPY CentOS-Base.repo /etc/yum.repos.d/RUN yum clean all && yum install python-dev

                                Docker仓库管理

                                推送镜像

                              3. 登录DockerHub
                              4. docker login
                                1. 推送镜像
                                2. docker push yuchao163/centos-entrypoint-exec:latest

                                  Docker私有仓库搭建

                                  配置私有仓库

                                3. 启动Registry镜像
                                4. docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
                                  1. 修改配置文件
                                  2. vim /etc/docker/daemon.json
                                    {"registry-mirrors": ["http://f1361db2.m.daocloud.io"], "insecure-registries":["192.168.230.132:5000"]}
                                    1. 重启Docker服务
                                    2. systemctl restart docker
                                      1. 推送镜像
                                      2. docker push 192.168.230.132:5000/s20-hello-world

                                        这篇文章涵盖了Docker的基础操作、镜像管理、集群配置及常见问题解决思路,希望能为Docker初学者提供清晰的指导!

    转载地址:http://ezzfk.baihongyu.com/

    你可能感兴趣的文章
    Linux 中的绝对路径与相对路径:有什么区别?
    查看>>
    Linux 中的逻辑卷 LVM 管理完整初学者指南
    查看>>
    Linux 使用ab进行压力测试
    查看>>
    Linux 使用记1 fastx toolkit安装问题
    查看>>
    Linux 内存优化性能实战
    查看>>
    Linux 内核 6.11 RC6 发布!
    查看>>
    Linux 内核/sbin/hotplug 工具
    查看>>
    Linux 内核kobject 缺省属性
    查看>>
    Linux 内核交互图
    查看>>
    linux 内核定时器精度_LWN 文章合集之 “内核定时器”
    查看>>
    Linux 内核有soft rdma吗?
    查看>>
    Linux 内核突破 4000 万行代码:创新与挑战并存的里程碑
    查看>>
    Linux 几种文件传输方式
    查看>>
    Linux 创建用户和工作组
    查看>>
    Linux 创建(删除)连接命令 ln -s 软连接
    查看>>
    Linux 利用lsof命令恢复删除的文件
    查看>>
    Linux 利用XShell隧道通过跳板机连接内网服务器
    查看>>
    linux 单机版安装5.7
    查看>>
    Linux 卸载mysql-libs包出现问题如何解决
    查看>>
    Linux 压缩、解压和打包命令
    查看>>