Docker 构建 Redis

一、单节点redis

1)拉取镜像

docker pull redis:5

2.1)方法一:直接创建容器

docker run \
  -p 6379:6379 \
  --restart=always \
  --name some-redis \
  -v /mnt/redis/data:/data \
  --network=my-network \
  --network-alias=redis-alias \
  -e TZ=Asia/Shanghai \
  -d redis:tag redis-server --appendonly yes --requirepass "my-secret-pw"
  • some-redis:创建后的容器名称(此处我修改为 redis)
  • data:挂载数据路径
  • network:非必须,要加入的网络
  • network-alias:被必须,在网络中的别名
  • TZ:时区
  • tag:指定 redis 版本(此处我修改为5)
  • requirepass:登陆密码

2.2)方法二:自定义配置

创建映射文件夹并把自定义的 redis.conf 复制进去

mkdir -p /myredis/conf/

redis.conf 主要修改这几点

  • bind 0.0.0.0
  • protected-mode no
  • daemonize no
  • requirepass 你的密码

然后创建容器

docker run -d -p 6379:6379 -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name redis --restart=always redis:5 redis-server /usr/local/etc/redis/redis.conf --appendonly yes

3)测试连接

二、redis单机集群

1. 创建redis-cluster.yaml文件,注意修改ip

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
name: redis-cluster
services:
  redis-node-0:
    image: docker.io/bitnami/redis-cluster:7.0
    volumes:
      - redis-cluster_data-0:/bitnami/redis/data
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - REDIS_PORT_NUMBER=7000
      - REDIS_CLUSTER_ANNOUNCE_PORT=7000
      - REDIS_CLUSTER_ANNOUNCE_IP=192.168.3.8 #主机IP或公网IP,不要使用127.0.0.1或localhost,下面节点也记得换
      - REDIS_CLUSTER_ANNOUNCE_BUS_PORT=17000
      - REDIS_CLUSTER_DYNAMIC_IPS=no
      - REDIS_NODES=redis-node-0:7000 redis-node-1:7001 redis-node-2:7002 redis-node-3:7003 redis-node-4:7004 redis-node-5:7005
    ports:
      - 7000:7000
      - 17000:17000
 
  redis-node-1:
    image: docker.io/bitnami/redis-cluster:7.0
    volumes:
      - redis-cluster_data-1:/bitnami/redis/data
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - REDIS_PORT_NUMBER=7001
      - REDIS_CLUSTER_ANNOUNCE_PORT=7001
      - REDIS_CLUSTER_ANNOUNCE_BUS_PORT=17001
      - REDIS_CLUSTER_ANNOUNCE_IP=192.168.3.8
      - REDIS_CLUSTER_DYNAMIC_IPS=no
      - REDIS_NODES=redis-node-0:7000 redis-node-1:7001 redis-node-2:7002 redis-node-3:7003 redis-node-4:7004 redis-node-5:7005
    ports:
      - 7001:7001
      - 17001:17001
 
  redis-node-2:
    image: docker.io/bitnami/redis-cluster:7.0
    volumes:
      - redis-cluster_data-2:/bitnami/redis/data
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - REDIS_PORT_NUMBER=7002
      - REDIS_CLUSTER_ANNOUNCE_PORT=7002
      - REDIS_CLUSTER_ANNOUNCE_BUS_PORT=17002
      - REDIS_CLUSTER_ANNOUNCE_IP=192.168.3.8
      - REDIS_CLUSTER_DYNAMIC_IPS=no
      - REDIS_NODES=redis-node-0:7000 redis-node-1:7001 redis-node-2:7002 redis-node-3:7003 redis-node-4:7004 redis-node-5:7005
    ports:
      - 7002:7002
      - 17002:17002
 
  redis-node-3:
    image: docker.io/bitnami/redis-cluster:7.0
    volumes:
      - redis-cluster_data-3:/bitnami/redis/data
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - REDIS_PORT_NUMBER=7003
      - REDIS_CLUSTER_ANNOUNCE_PORT=7003
      - REDIS_CLUSTER_ANNOUNCE_BUS_PORT=17003
      - REDIS_CLUSTER_ANNOUNCE_IP=192.168.3.8
      - REDIS_CLUSTER_DYNAMIC_IPS=no
      - REDIS_NODES=redis-node-0:7000 redis-node-1:7001 redis-node-2:7002 redis-node-3:7003 redis-node-4:7004 redis-node-5:7005
    ports:
      - 7003:7003
      - 17003:17003
 
  redis-node-4:
    image: docker.io/bitnami/redis-cluster:7.0
    volumes:
      - redis-cluster_data-4:/bitnami/redis/data
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - REDIS_PORT_NUMBER=7004
      - REDIS_CLUSTER_ANNOUNCE_PORT=7004
      - REDIS_CLUSTER_ANNOUNCE_BUS_PORT=17004
      - REDIS_CLUSTER_ANNOUNCE_IP=192.168.3.8
      - REDIS_CLUSTER_DYNAMIC_IPS=no
      - REDIS_NODES=redis-node-0:7000 redis-node-1:7001 redis-node-2:7002 redis-node-3:7003 redis-node-4:7004 redis-node-5:7005
    ports:
      - 7004:7004
      - 17004:17004
 
  redis-node-5:
    image: docker.io/bitnami/redis-cluster:7.0
    volumes:
      - redis-cluster_data-5:/bitnami/redis/data
    depends_on:
      - redis-node-0
      - redis-node-1
      - redis-node-2
      - redis-node-3
      - redis-node-4
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - REDIS_CLUSTER_REPLICAS=1
      - REDIS_PORT_NUMBER=7005
      - REDIS_CLUSTER_ANNOUNCE_PORT=7005
      - REDIS_CLUSTER_ANNOUNCE_BUS_PORT=17005
      - REDIS_CLUSTER_ANNOUNCE_IP=192.168.3.8
      - REDIS_CLUSTER_DYNAMIC_IPS=no
      - REDIS_NODES=redis-node-0:7000 redis-node-1:7001 redis-node-2:7002 redis-node-3:7003 redis-node-4:7004 redis-node-5:7005
      - REDIS_CLUSTER_CREATOR=yes
    ports:
      - 7005:7005
      - 17005:17005
 
volumes:
  redis-cluster_data-0:
  redis-cluster_data-1:
  redis-cluster_data-2:
  redis-cluster_data-3:
  redis-cluster_data-4:
  redis-cluster_data-5:

2. 启动集群

1
docker compose -f redis-cluster.yaml up -d

3. 需要删除集群的话,使用下面的命令

1
docker compose -f redis-cluster.yaml down && docker volume prune -f

 

作者:revil

出处:https://www.cnblogs.com/revil/p/15892126.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   多久会在  阅读(184)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示