Redis优化基础[001]docker安装&redis主从

docker主要用途:

  1. 提供一次性配置的环境去部署.
  2. 提供弹性的云服务.
  3. 组建微服务架构, 多容器的方式一台机器可以跑多个服务, 模拟出微服务架构.

Centos安装docker

更新update到最新的版本

# yum update

卸载老版本的docker

# yum remove docker
# yum remove docker-client
# yum remove docker-client-latest
# yum remove docker-common
# yum remove docker-latest
# yum remove docker-latest-logrotate
# yum remove docker-logrotate
# yum remove docker-selinux
# yum remove docker-engine-selinux
# yum remove docker-engine
# rm -rf /etc/systemd/system/docker.service.d
# rm -rf /var/lib/docker
# rm -rf /var/run/docker

安装需要的软件包

# yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

查看docker版本

# yum list docker-ce --showduplicates|sort -r

安装docker

# yum install docker-ce-18.03.1.ce-1.el7.centos

启动docker

# systemctl start docker

开机自启

# systemctl enable docker

配置国内镜像

    $ sudo vim /etc/docker/daemon.json
        ---
        {
            "registry-mirrors":["http://hub-mirror.c.163.com"]
        }
        ---

启动redis主从容器

创建一个docker镜像

# cd /vagrant
# mkdir docker
# cd docker
# mkdir redis
# cd redis
# vim Dockerfile
    ---
    FROM centos:latest
    RUN groupadd -r redis && useradd  -r -g redis redis
    RUN yum -y update &&  yum -y install epel-release && yum -y install redis && yum -y install net-tools
    EXPOSE 6379
    ---
# docker build -t redis .

查看网络类型

# docker network ls

bridge: docker默认是桥接网络. 每次容器重启都会更换ip地址(组主机内使用)
null: 不能分配ip地址.
host: 绑定端口的, 宿主机的某端口会映射到该容器中.(方便外部通过宿主机端口访问)

启动redis主从容器

容器名称          IP            映射端口号     宿主机IP          服务器运行模式
Redis-master    172.10.0.2    6380->6379    192.168.11.125    Master
Redis-slave     172.10.0.3    6381->6379    192.168.11.125    Slave

创建网络连接

# docker network create --subnet=172.10.0.0/16 mynetwork

启动master容器

# docker run -itd -p 宿主端口:容器端口 --name 容器名称 --net 网络名称 --ip 容器IP 依赖镜像
# docker run -itd -p 6380:6379 --name redis-master --net mynetwork --ip 172.10.0.2 redis

启动slave容器

# docker run -itd -p 6381:6379 --name redis-slave --net mynetwork --ip 172.10.0.3 redis

-d: 后台运行容器, 并返回容器ID;
-i: 以交互模式运行容器, 通常与-t同时使用;
-p: 端口映射, 格式为: 宿主机端口:容器端口
-t: 为容器分配一个伪输入终端, 通常与-i同用
–ip: 指定容器的固定ip
–net: 指定网络模式

查看网络中的容器

# docker network inspect 被"network create"创建的网络名称
# docker network inspect mynetwork

进入容器
开两个窗口各自执行

# docker exec -it redis-master bash
# docker exec -it redis-slave bash

此处即是容器内提示符

配置redis主从节点, 开启主从复制

配置文件
–主服务器redis.conf–

# vi /etc/redis.conf
    ---
    bind 0.0.0.0 # 让所有ip都能访问
    protected-mode no # 测试环境下关闭
    # masterauth <master-password> # 访问密码, 测试环境不设置
    ---

–从服务器redis.conf–

# vi /etc/redis.conf
    ---
    bind 0.0.0.0 # 让所有ip都能访问
    protected-mode no # 测试环境下关闭
    slaveof 172.10.0.2 6379 # 指向主节点的ip和端口号
    # masterauth <master-password> # 访问密码, 测试环境不设置
    ---

启动&测试
–主服务器–

# redis-server /etc/redis.conf &
# redis-cli
127.0.0.1:6379> set kevin 123
OK

–从服务器–

# redis-server /etc/redis.conf &
# redis-cli
127.0.0.1:6379> get kevin
"123"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值