docker中的redis与持久化

149 阅读19分钟

一、docker的安装

1、docker版本

[root@KSSYYV181781 conf]# docker version
Client:
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:30:51 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       1a79695
  Built:            Mon Sep  4 12:32:17 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.7.3
  GitCommit:        7880925980b188f4c97b462f709d0db8e8962aff
 runc:
  Version:          1.1.9
  GitCommit:        v1.1.9-0-gccaecfc
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0  
  

2、docker安装


3、docker相关命令




二、redis架构

1、架构

哨兵模式
3节点
1master 2slave
redis5.0.9

2、资源规格




三、节点172.25.39.156

redis服务配置

1、redis的conf

####
#Redis配置文件示例。
####

##配置说明
#单位不区分大小写,因此1GB 1gb 1gB都是一样的。

##可以指定redis端口默认端口为6379
#port 6379

##后台启动
#daemonize yes

##开放注释的话只能来自同一主机的客户端连接
#注释这一行,表示Redis可以接受任意ip的连接
# bind 127.0.0.1

##关闭保护模式
protected-mode no

##主服务器认证密码,当主服务器故障,变为从节点时需要这个配置项
masterauth H3yuncom

##设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码)
requirepass H3yuncom

##配置日志路径,为了便于排查问题,指定redis的日志文件目录
logfile "/var/log/redis.log"

#设置pid文件路径
pidfile /var/run/redis.pid


2、docker run

# 
docker run -d --name redis_master \
-p 6379:6379 \
-v /data/redis/conf/redis.conf:/etc/redis/conf/redis.conf \
-v /data/redis/log/redis.log:/var/log/redis.log \
registry.cn-hangzhou.aliyuncs.com/h3bpm/redis:4-alpine3.8 \
redis-server /etc/redis/conf/redis.conf

图片.png


3、docker ps


[root@KSSYYV181780 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ce7564cf3265 registry.cn-hangzhou.aliyuncs.com/h3bpm/redis:4-alpine3.8 "docker-entrypoint.s…" 12 months ago Up 8 months redis_sentinel
6ac05d2fb471 registry.cn-hangzhou.aliyuncs.com/h3bpm/redis:4-alpine3.8 "docker-entrypoint.s…" 12 months ago Up 8 months 0.0.0.0:6379->6379/tcp redis_master


4、docker inspect redis

[root@KSSYYV181780 ~]# docker inspect 6ac05d2fb471
[
    {
        "Id": "6ac05d2fb471ec116b628d856fc1756703a92f5e17d508d98ab53ab9843d8858",
        "Created": "2024-07-30T13:43:01.200461633Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "redis-server",
            "/etc/redis/conf/redis.conf"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 3403,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2024-11-09T20:43:30.667300293Z",
            "FinishedAt": "2024-11-09T20:43:26.033585445Z"
        },
        "Image": "sha256:ae70b17240ec47003d60ff9c5081f8fa0be23a5ac985a8fcd596f990107de564",
        "ResolvConfPath": "/var/lib/docker/containers/6ac05d2fb471ec116b628d856fc1756703a92f5e17d508d98ab53ab9843d8858/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/6ac05d2fb471ec116b628d856fc1756703a92f5e17d508d98ab53ab9843d8858/hostname",
        "HostsPath": "/var/lib/docker/containers/6ac05d2fb471ec116b628d856fc1756703a92f5e17d508d98ab53ab9843d8858/hosts",
        "LogPath": "/var/lib/docker/containers/6ac05d2fb471ec116b628d856fc1756703a92f5e17d508d98ab53ab9843d8858/6ac05d2fb471ec116b628d856fc1756703a92f5e17d508d98ab53ab9843d8858-json.log",
        "Name": "/redis_master",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/data/redis/conf/redis.conf:/etc/redis/conf/redis.conf",
                "/data/redis/log/redis.log:/var/log/redis.log"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "6379/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "6379"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                30,
                167
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": [],
            "BlkioDeviceWriteBps": [],
            "BlkioDeviceReadIOps": [],
            "BlkioDeviceWriteIOps": [],
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/4c959156913289cfb468f68d23302606164598a4927c710581ba8493290bcd2c-init/diff:/var/lib/docker/overlay2/b451ef0e4024a6a7a38458c87fa335ed2a6a418d806cf11762b68d1d5c54dc1f/diff:/var/lib/docker/overlay2/b497059727985177af450c71cc3497d6b9fac0f5d91ba2c6ca8e8e95e1f62387/diff:/var/lib/docker/overlay2/b8f3982609bb7e136a6d99d5612290ea7de053336151950b596999cc3f115683/diff:/var/lib/docker/overlay2/f82a1c386bb3d5f7103fdab55c58ecc677515726030ee4a17a7b02f9c0a6a542/diff:/var/lib/docker/overlay2/5c92a6e552eb8dd5a4eef74d56b49ce6b454fd4da94fc997536c9c8aa02c30bb/diff:/var/lib/docker/overlay2/018c3cbfdb413819ee126d803c6f5b2c324a5a93fdc1f623bf8c8e8e2f3c46e3/diff",
                "MergedDir": "/var/lib/docker/overlay2/4c959156913289cfb468f68d23302606164598a4927c710581ba8493290bcd2c/merged",
                "UpperDir": "/var/lib/docker/overlay2/4c959156913289cfb468f68d23302606164598a4927c710581ba8493290bcd2c/diff",
                "WorkDir": "/var/lib/docker/overlay2/4c959156913289cfb468f68d23302606164598a4927c710581ba8493290bcd2c/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "volume",
                "Name": "049d284cc3a8c9eead664227a29782eff5b5b4c945a62ba061ebb658dcaf68b2",
                "Source": "/var/lib/docker/volumes/049d284cc3a8c9eead664227a29782eff5b5b4c945a62ba061ebb658dcaf68b2/_data",
                "Destination": "/data",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "/data/redis/conf/redis.conf",
                "Destination": "/etc/redis/conf/redis.conf",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/redis/log/redis.log",
                "Destination": "/var/log/redis.log",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "6ac05d2fb471",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "6379/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "REDIS_VERSION=4.0.12",
                "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-4.0.12.tar.gz",
                "REDIS_DOWNLOAD_SHA=6447259d2eed426a949c9c13f8fdb2d91fb66d9dc915dd50db13b87f46d93162"
            ],
            "Cmd": [
                "redis-server",
                "/etc/redis/conf/redis.conf"
            ],
            "Image": "registry.cn-hangzhou.aliyuncs.com/h3bpm/redis:4-alpine3.8",
            "Volumes": {
                "/data": {}
            },
            "WorkingDir": "/data",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "672076852fc407ed2a640bd306d267f26119e70c1283d84032183d0267c08199",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "6379/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "6379"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/672076852fc4",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "1065380d0e6a47b2e785c4f858bca05e9fba3a7ffafd3b05b76f32cee7205e7c",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "3f73dad0a38fc8f67ca5b32d402990289f86c296b74a1c07fc75726e0108fdbe",
                    "EndpointID": "1065380d0e6a47b2e785c4f858bca05e9fba3a7ffafd3b05b76f32cee7205e7c",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

哨兵配置

1、sentinel的conf

##哨兵监听端口
port 26379

##哨兵输出日志(注意创建日志权限问题,如有问题可以注释)
logfile "/var/log/redis_sentinel.log"

#工作目录
dir "/data"

#redis主节点信息(主节点名称、IP、端口),及哨兵投票选举数量 等于2有两台哨兵投票主节点
sentinel myid c2a6e37f7e5776401fb7181696f3736e787f0922

##哨兵master节点宕机后,认定master不可用,默认30000 时间(毫秒)
sentinel deny-scripts-reconfig yes

##redis的主从节点服务的名称和密码 用于哨兵连接
sentinel monitor mymaster 172.25.39.157 6379 2

# Generated by CONFIG REWRITE
sentinel auth-pass mymaster H3yuncom
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 172.25.39.156 6379
sentinel known-slave mymaster 172.25.39.158 6379
sentinel known-sentinel mymaster 172.25.39.157 26379 84229305c284450193b0b296cdd625912f281010
sentinel known-sentinel mymaster 172.25.39.158 26379 54ce98c35cc70d70ea978e8f4ec2a3cc0cbaff46
sentinel current-epoch 1


2、docker run


docker run -d --name redis_sentinel \
--network host \
-v /data/redis/conf/sentinel.conf:/etc/redis/conf/sentinel.conf \
-v /data/redis/log/sentinel.log:/var/log/redis_sentinel.log \
registry.cn-hangzhou.aliyuncs.com/h3bpm/redis:4-alpine3.8 \
redis-sentinel /etc/redis/conf/sentinel.conf

图片.png


3、docker ps


4、docker inspect sentinel

 # sentienl
[root@KSSYYV181780 ~]# docker inspect ce7564cf3265
[
    {
        "Id": "ce7564cf3265e56c544c03058a582951476a1766562925f3cbaeedf037cdc791",
        "Created": "2024-08-02T09:56:29.602306089Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "redis-sentinel",
            "/etc/redis/conf/sentinel.conf"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 3402,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2024-11-09T20:43:30.667509221Z",
            "FinishedAt": "2024-11-09T20:43:26.033588177Z"
        },
        "Image": "sha256:ae70b17240ec47003d60ff9c5081f8fa0be23a5ac985a8fcd596f990107de564",
        "ResolvConfPath": "/var/lib/docker/containers/ce7564cf3265e56c544c03058a582951476a1766562925f3cbaeedf037cdc791/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/ce7564cf3265e56c544c03058a582951476a1766562925f3cbaeedf037cdc791/hostname",
        "HostsPath": "/var/lib/docker/containers/ce7564cf3265e56c544c03058a582951476a1766562925f3cbaeedf037cdc791/hosts",
        "LogPath": "/var/lib/docker/containers/ce7564cf3265e56c544c03058a582951476a1766562925f3cbaeedf037cdc791/ce7564cf3265e56c544c03058a582951476a1766562925f3cbaeedf037cdc791-json.log",
        "Name": "/redis_sentinel",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/data/redis/conf/sentinel.conf:/etc/redis/conf/sentinel.conf",
                "/data/redis/log/sentinel.log:/var/log/redis_sentinel.log"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "host",
            "PortBindings": {
                "26379/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "26379"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                30,
                167
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": [],
            "BlkioDeviceWriteBps": [],
            "BlkioDeviceReadIOps": [],
            "BlkioDeviceWriteIOps": [],
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/ceeeacef510bcfeebdfd8282f0a5b37a8058befc0c88f8882d899a875a24db8d-init/diff:/var/lib/docker/overlay2/b451ef0e4024a6a7a38458c87fa335ed2a6a418d806cf11762b68d1d5c54dc1f/diff:/var/lib/docker/overlay2/b497059727985177af450c71cc3497d6b9fac0f5d91ba2c6ca8e8e95e1f62387/diff:/var/lib/docker/overlay2/b8f3982609bb7e136a6d99d5612290ea7de053336151950b596999cc3f115683/diff:/var/lib/docker/overlay2/f82a1c386bb3d5f7103fdab55c58ecc677515726030ee4a17a7b02f9c0a6a542/diff:/var/lib/docker/overlay2/5c92a6e552eb8dd5a4eef74d56b49ce6b454fd4da94fc997536c9c8aa02c30bb/diff:/var/lib/docker/overlay2/018c3cbfdb413819ee126d803c6f5b2c324a5a93fdc1f623bf8c8e8e2f3c46e3/diff",
                "MergedDir": "/var/lib/docker/overlay2/ceeeacef510bcfeebdfd8282f0a5b37a8058befc0c88f8882d899a875a24db8d/merged",
                "UpperDir": "/var/lib/docker/overlay2/ceeeacef510bcfeebdfd8282f0a5b37a8058befc0c88f8882d899a875a24db8d/diff",
                "WorkDir": "/var/lib/docker/overlay2/ceeeacef510bcfeebdfd8282f0a5b37a8058befc0c88f8882d899a875a24db8d/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "volume",
                "Name": "9cb28778ae0e24b09c24c2a883fdbfb4f2ccbc27fd838e2ea4c8ef4f93bfcfc5",
                "Source": "/var/lib/docker/volumes/9cb28778ae0e24b09c24c2a883fdbfb4f2ccbc27fd838e2ea4c8ef4f93bfcfc5/_data",
                "Destination": "/data",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "/data/redis/conf/sentinel.conf",
                "Destination": "/etc/redis/conf/sentinel.conf",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/redis/log/sentinel.log",
                "Destination": "/var/log/redis_sentinel.log",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "KSSYYV181780",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "26379/tcp": {},
                "6379/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "REDIS_VERSION=4.0.12",
                "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-4.0.12.tar.gz",
                "REDIS_DOWNLOAD_SHA=6447259d2eed426a949c9c13f8fdb2d91fb66d9dc915dd50db13b87f46d93162"
            ],
            "Cmd": [
                "redis-sentinel",
                "/etc/redis/conf/sentinel.conf"
            ],
            "Image": "registry.cn-hangzhou.aliyuncs.com/h3bpm/redis:4-alpine3.8",
            "Volumes": {
                "/data": {}
            },
            "WorkingDir": "/data",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "07a260243ef633a436e2fa801b29ad6fb278e4930315e3dbb4dbe6c597c4364e",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/default",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "bee578178d74f9be75f1f269081cb6eebce9b5769b716f02ec31a7f53de275ad",
                    "EndpointID": "8d474aeb1228c8752abea70f007391159b8dd24bee5ff0356c22b2dea4c0b9a6",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]



四、节点172.25.39.157

redis服务配置

1、redis的conf

####

#Redis配置文件示例。

####

##配置说明
#单位不区分大小写,因此1GB 1gb 1gB都是一样的。
  
##可以指定redis端口默认端口为6379
#port 6379

##后台启动
#daemonize yes

##开放注释的话只能来自同一主机的客户端连接
#注释这一行,表示Redis可以接受任意ip的连接
# bind 127.0.0.1

##关闭保护模式
protected-mode no

##主服务器认证密码,当主服务器故障,变为从节点时需要这个配置项
masterauth H3yuncom

##设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码)
requirepass H3yuncom

##配置日志路径,为了便于排查问题,指定redis的日志文件目录
logfile "/var/log/redis.log"

#设置pid文件路径
pidfile /var/run/redis.pid

slaveof 172.25.39.156 6379


2、docker run


3、docker ps


4、docker inspect

哨兵配置

1、sentinel的conf

##哨兵监听端口
port 26379

##哨兵输出日志(注意创建日志权限问题,如有问题可以注释)
logfile "/var/log/redis_sentinel.log"

#工作目录
dir "/data"

#redis主节点信息(主节点名称、IP、端口),及哨兵投票选举数量 等于2有两台哨兵投票主节点
sentinel myid 84229305c284450193b0b296cdd625912f281010


##哨兵master节点宕机后,认定master不可用,默认30000 时间(毫秒)
sentinel deny-scripts-reconfig yes



##redis的主从节点服务的名称和密码 用于哨兵连接
sentinel monitor mymaster 172.25.39.157 6379 2
# Generated by CONFIG REWRITE
sentinel auth-pass mymaster H3yuncom
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 172.25.39.158 6379
sentinel known-slave mymaster 172.25.39.156 6379
sentinel known-sentinel mymaster 172.25.39.156 26379 c2a6e37f7e5776401fb7181696f3736e787f0922
sentinel known-sentinel mymaster 172.25.39.158 26379 54ce98c35cc70d70ea978e8f4ec2a3cc0cbaff46
sentinel current-epoch 1


2、docker run


3、docker ps


4、docker inspect




五、节点172.25.39.158

redis服务配置

1、redis的conf

####
#Redis配置文件示例。
####


##配置说明
#单位不区分大小写,因此1GB 1gb 1gB都是一样的。


##可以指定redis端口默认端口为6379
#port 6379

##后台启动
#daemonize yes


##开放注释的话只能来自同一主机的客户端连接
#注释这一行,表示Redis可以接受任意ip的连接
# bind 127.0.0.1


##关闭保护模式
protected-mode no

##主服务器认证密码,当主服务器故障,变为从节点时需要这个配置项
masterauth H3yuncom


##设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码)
requirepass H3yuncom


##配置日志路径,为了便于排查问题,指定redis的日志文件目录
logfile "/var/log/redis.log"

#设置pid文件路径
pidfile /var/run/redis.pid

slaveof 172.25.39.156 6379



2、docker run


3、docker ps


4、docker inspect

哨兵配置

1、sentinel的conf


##哨兵监听端口
port 26379

##哨兵输出日志(注意创建日志权限问题,如有问题可以注释)
logfile "/var/log/redis_sentinel.log"

#工作目录
dir "/data"

#redis主节点信息(主节点名称、IP、端口),及哨兵投票选举数量 等于2有两台哨兵投票主节点
sentinel myid 54ce98c35cc70d70ea978e8f4ec2a3cc0cbaff46


##哨兵master节点宕机后,认定master不可用,默认30000 时间(毫秒)
sentinel deny-scripts-reconfig yes

##redis的主从节点服务的名称和密码 用于哨兵连接
sentinel monitor mymaster 172.25.39.157 6379 2

# Generated by CONFIG REWRITE
sentinel auth-pass mymaster H3yuncom
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 172.25.39.156 6379
sentinel known-slave mymaster 172.25.39.158 6379
sentinel known-sentinel mymaster 172.25.39.157 26379 84229305c284450193b0b296cdd625912f281010
sentinel known-sentinel mymaster 172.25.39.156 26379 c2a6e37f7e5776401fb7181696f3736e787f0922
sentinel current-epoch 1


2、docker run


3、docker ps


4、docker inspect




六、补充

docker exec -it redis_master /bin/shdocker exec -it redis_master /bin/bash 对比

图片.png

图片.png

图片.png


七、 补充